[30357] in Perl-Users-Digest
Perl-Users Digest, Issue: 1600 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Sun Jun 1 16:09:42 2008
Date: Sun, 1 Jun 2008 13:09:09 -0700 (PDT)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Perl-Users Digest Sun, 1 Jun 2008 Volume: 11 Number: 1600
Today's topics:
changing the value of "case" in a switch statement <bill@ts1000.us>
Re: changing the value of "case" in a switch statement <m@rtij.nl.invlalid>
Re: changing the value of "case" in a switch statement <bill@ts1000.us>
Re: changing the value of "case" in a switch statement <szrRE@szromanMO.comVE>
Re: changing the value of "case" in a switch statement <rvtol+news@isolution.nl>
One of thos d'uh moments <bill@ts1000.us>
Re: One of thos d'uh moments <bill@ts1000.us>
Re: One of thos d'uh moments <m@rtij.nl.invlalid>
Re: One of thos d'uh moments <jurgenex@hotmail.com>
Re: One of thos d'uh moments <jurgenex@hotmail.com>
Re: One of thos d'uh moments <m@rtij.nl.invlalid>
Re: One of thos d'uh moments <simon.chao@fmr.com>
Re: One of thos d'uh moments <jurgenex@hotmail.com>
Perl read file eat up my memory... <howachen@gmail.com>
Re: Perl read file eat up my memory... <1usa@llenroc.ude.invalid>
Re: Perl read file eat up my memory... <jurgenex@hotmail.com>
Re: Python's doc problems: sort <ark@acm.org>
Re: Python's doc problems: sort <jurgenex@hotmail.com>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Sun, 1 Jun 2008 06:05:50 -0700 (PDT)
From: Bill H <bill@ts1000.us>
Subject: changing the value of "case" in a switch statement
Message-Id: <d4effef1-3215-4f7d-8ca2-155ae9199cfb@r66g2000hsg.googlegroups.com>
When using the switch / case construct I have found it necessary
(desirable?) to be able to change the "case" on the fly. For example
(this is a typed in example, not the true code):
switch ($action)
{
case "save"
{
# save the new information
$action = "list"; # show them all the information available
including what was just saved using the next case
}
case "list"
{
# list the information available
}
}
Changing $action in the "save" portion doesnt alter the switch / case
(unless I am doing something very wrong). The only remedy I have found
is either put the save stuff outside of the switch / case or to put
the list stuff in a sub and call it from within save or to do what I
found in the perldoc for the switch statement:
"Fall-though (trying another case after one has already succeeded) is
usually a Bad Idea in a switch statement. However, this is Perl, not a
police state, so there is a way to do it, if you must.
If a case block executes an untargeted next, control is immediately
transferred to the statement after the case statement (i.e. usually
another case), rather than out of the surrounding switch block.
"
and pointedly ignoring the part about this being a "Bad Idea" cause,
as it says, this aint no police state, and see that I can use "next"
to go to the next "case" statement, but if I am reading it right, I
would always have to have (in my simple example), "list" after
"save".
I know (hope?) there must be an way to do what I want, changing the
"case" on the fly, anyone?
Bill H
------------------------------
Date: Sun, 1 Jun 2008 16:37:14 +0200
From: Martijn Lievaart <m@rtij.nl.invlalid>
Subject: Re: changing the value of "case" in a switch statement
Message-Id: <pan.2008.06.01.14.37.14@rtij.nl.invlalid>
On Sun, 01 Jun 2008 06:05:50 -0700, Bill H wrote:
> When using the switch / case construct I have found it necessary
> (desirable?) to be able to change the "case" on the fly. For example
> (this is a typed in example, not the true code):
>
> switch ($action)
> {
> case "save"
> {
> # save the new information
> $action = "list"; # show them all the information available
> including what was just saved using the next case
> }
> case "list"
> {
> # list the information available
> }
> }
>
>
> Changing $action in the "save" portion doesnt alter the switch / case
> (unless I am doing something very wrong). The only remedy I have found
> is either put the save stuff outside of the switch / case or to put the
> list stuff in a sub and call it from within save or ....
Actually, putting the common part in subs is how I would do it. But there
is (of course) another easy way.
if ($action eq "save")
{
# save the new information
$action = "list"; # show them all the information available
# including what was just saved
}
switch ($action)
{
case "list"
{
# list the information available
}
case "whatever"
{
# whatever
}
}
HTH,
M4
------------------------------
Date: Sun, 1 Jun 2008 08:32:40 -0700 (PDT)
From: Bill H <bill@ts1000.us>
Subject: Re: changing the value of "case" in a switch statement
Message-Id: <67ae9db1-3c9b-4b70-ae72-12567d71cb80@k13g2000hse.googlegroups.com>
On Jun 1, 10:37=A0am, Martijn Lievaart <m...@rtij.nl.invlalid> wrote:
> On Sun, 01 Jun 2008 06:05:50 -0700, Bill H wrote:
> > When using the switch / case construct I have found it necessary
> > (desirable?) to be able to change the "case" on the fly. For example
> > (this is a typed in example, not the true code):
>
> > switch ($action)
> > {
> > =A0case "save"
> > =A0{
> > =A0 # save the new information
> > =A0 $action =3D "list"; # show them all the information available
> > including what was just saved using the next case
> > =A0}
> > =A0case "list"
> > =A0{
> > =A0 # list the information available
> > =A0}
> > }
>
> > Changing $action in the "save" portion doesnt alter the switch / case
> > (unless I am doing something very wrong). The only remedy I have found
> > is either put the save stuff outside of the switch / case or to put the
> > list stuff in a sub and call it from within save or ....
>
> Actually, putting the common part in subs is how I would do it. But there
> is (of course) another easy way.
>
> if ($action eq "save")
> =A0{
> =A0 # save the new information
> =A0 $action =3D "list"; # show them all the information available
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 # including what was just saved
> =A0}
>
> switch ($action)
> {
> =A0case "list"
> =A0{
> =A0 # list the information available
> =A0}
> =A0case "whatever"
> =A0{
> =A0 # whatever
> =A0}
>
> }
>
> HTH,
> M4- Hide quoted text -
>
> - Show quoted text -
Thats what I am actually doing right now Martjin - was hoping for a
more elegant solution :)
Bill H
------------------------------
Date: Sun, 1 Jun 2008 08:42:12 -0700
From: "szr" <szrRE@szromanMO.comVE>
Subject: Re: changing the value of "case" in a switch statement
Message-Id: <g1ug0k01997@news4.newsguy.com>
Bill H wrote:
> On Jun 1, 10:37 am, Martijn Lievaart <m...@rtij.nl.invlalid> wrote:
>> On Sun, 01 Jun 2008 06:05:50 -0700, Bill H wrote:
>>> When using the switch / case construct I have found it necessary
>>> (desirable?) to be able to change the "case" on the fly. For example
>>> (this is a typed in example, not the true code):
>>
>>> switch ($action)
>>> {
>>> case "save"
>>> {
>>> # save the new information
>>> $action = "list"; # show them all the information available
>>> including what was just saved using the next case
>>> }
>>> case "list"
>>> {
>>> # list the information available
>>> }
>>> }
>>
>>> Changing $action in the "save" portion doesnt alter the switch /
>>> case (unless I am doing something very wrong). The only remedy I
>>> have found is either put the save stuff outside of the switch /
>>> case or to put the list stuff in a sub and call it from within save
>>> or ....
>>
>> Actually, putting the common part in subs is how I would do it. But
>> there is (of course) another easy way.
>>
>> if ($action eq "save")
>> {
>> # save the new information
>> $action = "list"; # show them all the information available
>> # including what was just saved
>> }
>>
>> switch ($action)
>> {
>> case "list"
>> {
>> # list the information available
>> }
>> case "whatever"
>> {
>> # whatever
>> }
>>
>> }
>
> Thats what I am actually doing right now Martjin - was hoping for a
> more elegant solution :)
You may also want to look at given/when constructs.
--
szr
------------------------------
Date: Sun, 1 Jun 2008 19:40:28 +0200
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: changing the value of "case" in a switch statement
Message-Id: <g1uu8r.1ok.1@news.isolution.nl>
Bill H schreef:
> When using the switch / case construct I have found it necessary
> (desirable?) to be able to change the "case" on the fly.
Bad design.
> For example
> (this is a typed in example, not the true code):
>
> switch ($action)
> {
> case "save"
> {
> # save the new information
> $action = "list"; # show them all the information available
> including what was just saved using the next case
> }
> case "list"
> {
> # list the information available
> }
> }
One way, that I also don't like:
while ($action) {
if ($action eq 'save') {
...
action = 'list';
} elsif ($action = 'list') {
...
$action = '';
}
}
Another ugly way:
while ($action) {
my $next_action;
if ($action eq 'save') {
...
next_action = 'list';
} elsif ($action = 'list') {
...
}
$next_action or last;
$action = $next_action;
}
Yet another way:
for ($action) {
/^ save $/x and ...;
/^ (?: save | list ) $/x and ...;
}
--
Affijn, Ruud
"Gewoon is een tijger."
------------------------------
Date: Sun, 1 Jun 2008 06:40:07 -0700 (PDT)
From: Bill H <bill@ts1000.us>
Subject: One of thos d'uh moments
Message-Id: <cc0b30d2-defc-44ff-ade2-5c9ec7945d9d@8g2000hse.googlegroups.com>
For years I have always done various versions the following (and I
know there is probably some perlish way of doing it better, but old
habits die hard) to go through a list of data and build a string that
contains only certain matched data:
$stuff = "":
foreach $temp (@dbf)
{
@rbf = split(/\t/,$temp);
if($rbf[0] == 0)
{
$stuff .= $temp."|";
}
}
$stuff = substr($stuff,0,length($stuff) - 1);
But I just realized about 5 minutes ago instead of pulling off the
last usless "|" I could just replace $stuff = ""; with stuff = "|";
and the last line with: $stuff = substr($stuff,1);
And, while typing this I just realized I could do the above even
better:
foreach $temp (@dbf)
{
@rbf = split(/\t/,$temp);
if($rbf[0] == 0)
{
$cbf[@cbf] = $temp
}
}
$stuff = join('|',@cbf);
I am willing to bet now there is a one line command that would do all
this.
Bill H
------------------------------
Date: Sun, 1 Jun 2008 06:41:40 -0700 (PDT)
From: Bill H <bill@ts1000.us>
Subject: Re: One of thos d'uh moments
Message-Id: <c2d105d7-c6cf-42c6-8f3e-353579de9031@e39g2000hsf.googlegroups.com>
On Jun 1, 9:40=A0am, Bill H <b...@ts1000.us> wrote:
> For years I have always done various versions the following (and I
> know there is probably some perlish way of doing it better, but old
> habits die hard) to go through a list of data and build a string that
> contains only certain matched data:
>
> $stuff =3D "":
> foreach $temp (@dbf)
> {
> @rbf =3D split(/\t/,$temp);
> if($rbf[0] =3D=3D 0)
> {
> $stuff .=3D $temp."|";}
> }
>
> $stuff =3D substr($stuff,0,length($stuff) - 1);
>
> But I just realized about 5 minutes ago instead of pulling off the
> last usless "|" I could just replace $stuff =3D ""; with stuff =3D "|";
> and the last line with: $stuff =3D substr($stuff,1);
>
> And, while typing this I just realized I could do the above even
> better:
>
> foreach $temp (@dbf)
> {
> @rbf =3D split(/\t/,$temp);
> if($rbf[0] =3D=3D 0)
> {
> $cbf[@cbf] =3D $temp}
> }
>
> $stuff =3D join('|',@cbf);
>
> I am willing to bet now there is a one line command that would do all
> this.
>
> Bill H
I can throw a sort in that join and make it better (oh this is getting
fun now)
$stuff =3D join('|',sort @cbf);
Bill H
------------------------------
Date: Sun, 1 Jun 2008 16:33:15 +0200
From: Martijn Lievaart <m@rtij.nl.invlalid>
Subject: Re: One of thos d'uh moments
Message-Id: <pan.2008.06.01.14.33.15@rtij.nl.invlalid>
On Sun, 01 Jun 2008 06:40:07 -0700, Bill H wrote:
> I am willing to bet now there is a one line command that would do all
> this.
If I understand correctly what you are trying to do:
$stuff = join('|', grep(/^0\t/, @dbf));
HTH,
M4
------------------------------
Date: Sun, 01 Jun 2008 15:15:59 GMT
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: One of thos d'uh moments
Message-Id: <k3f544pa0c9qtveh30nr3gbjr4gbs0ohbn@4ax.com>
Martijn Lievaart <m@rtij.nl.invlalid> wrote:
>On Sun, 01 Jun 2008 06:40:07 -0700, Bill H wrote:
>
>> I am willing to bet now there is a one line command that would do all
>> this.
>
>If I understand correctly what you are trying to do:
>
>$stuff = join('|', grep(/^0\t/, @dbf));
He's looking for the numerical value 0, not the string '0' as the first
value each line.
jue
------------------------------
Date: Sun, 01 Jun 2008 15:19:37 GMT
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: One of thos d'uh moments
Message-Id: <jfe544tup3n2ilmmsr4gschldoph1b4ka6@4ax.com>
Bill H <bill@ts1000.us> wrote:
>foreach $temp (@dbf)
>{
>@rbf = split(/\t/,$temp);
>if($rbf[0] == 0)
>{
>$cbf[@cbf] = $temp
>}
>}
>$stuff = join('|',@cbf);
Reformatted for better readability and comments added:
foreach $temp (@dbf){ #looping through a data set
@rbf = split(/\t/,$temp); #items separated by tab
if($rbf[0] == 0){ # only first is relevant
$cbf[@cbf] = $temp #this is the same as push() of the result
}
}
$stuff = join('|',@cbf);
If I understand your code correctly, then you got an array, where each
value is a line of tab-separated numbers.
You want to grab the first number from each value and join those
together into a single string devided by with a vertical bar.
>I am willing to bet now there is a one line command that would do all
>this.
A two-liner (untested):
for (@dbf) {($_) = split/\t/;}
join ('|', grep ($_ == 0, @dbf));
If you use map() instead of for(){} you should be able to make it a
single statement.
jue
------------------------------
Date: Sun, 1 Jun 2008 18:03:06 +0200
From: Martijn Lievaart <m@rtij.nl.invlalid>
Subject: Re: One of thos d'uh moments
Message-Id: <pan.2008.06.01.16.03.06@rtij.nl.invlalid>
On Sun, 01 Jun 2008 15:15:59 +0000, Jürgen Exner wrote:
> Martijn Lievaart <m@rtij.nl.invlalid> wrote:
>>On Sun, 01 Jun 2008 06:40:07 -0700, Bill H wrote:
>>
>>> I am willing to bet now there is a one line command that would do all
>>> this.
>>
>>If I understand correctly what you are trying to do:
>>
>>$stuff = join('|', grep(/^0\t/, @dbf));
>
> He's looking for the numerical value 0, not the string '0' as the first
> value each line.
Yes, I realized that. However, in many (most) data the numerical value 0
is always the string '0'. It might be '0.00000', in which case my
solution does not work. It might be '', in which case the code is not
"use warnings;" safe.
If it really must be the same:
$stuff = join('|', grep((split(/\t/, $_))[0]==0, @dbf));
However that starts to border on the obscure. Lets try again:
sub starts_with_null {
(split(/\t/, $_))[0]==0;
}
$stuff = join('|', grep(starts_with_null, @dbf));
Somewhat better. Or
$stuff = join('|', grep {
my ($t) = split(/\t/, $_);
$t == 0;
} @dbf);
Anyone has a more elegant solution? Must be possible.
M4
------------------------------
Date: Sun, 1 Jun 2008 09:55:04 -0700 (PDT)
From: nolo contendere <simon.chao@fmr.com>
Subject: Re: One of thos d'uh moments
Message-Id: <72baf045-e3fa-4fad-aefb-6cfb7181f31c@a70g2000hsh.googlegroups.com>
On Jun 1, 12:03=A0pm, Martijn Lievaart <m...@rtij.nl.invlalid> wrote:
> On Sun, 01 Jun 2008 15:15:59 +0000, J=FCrgen Exner wrote:
> > Martijn Lievaart <m...@rtij.nl.invlalid> wrote:
> >>On Sun, 01 Jun 2008 06:40:07 -0700, Bill H wrote:
>
> >>> I am willing to bet now there is a one line command that would do all
> >>> this.
>
> >>If I understand correctly what you are trying to do:
>
> >>$stuff =3D join('|', grep(/^0\t/, @dbf));
>
> > He's looking for the numerical value 0, not the string '0' as the first
> > value each line.
>
> Yes, I realized that. However, in many (most) data the numerical value 0
> is always the string '0'. It might be '0.00000', in which case my
> solution does not work. It might be '', in which case the code is not
> "use warnings;" safe.
>
> If it really must be the same:
>
> $stuff =3D join('|', grep((split(/\t/, $_))[0]=3D=3D0, @dbf));
>
> However that starts to border on the =A0obscure. Lets try again:
>
> sub starts_with_null {
> =A0 =A0 =A0 =A0 (split(/\t/, $_))[0]=3D=3D0;
>
> }
>
> $stuff =3D join('|', grep(starts_with_null, @dbf));
>
> Somewhat better. Or
>
> $stuff =3D join('|', grep {
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 my ($t) =3D split(/\t/, $_=
);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 $t =3D=3D 0;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 } @dbf);
>
> Anyone has a more elegant solution? Must be possible.
how about this? doesn't test for non-numeric in the equality
comparison, but neither did the OP's.
You could argue that regexs typically are more esoteric, so maybe not
as legible. as far as elegance, that's subjective :-).
#!/usr/bin/perl
use strict; use warnings;
use Data::Dumper;
chomp( my @dbf =3D <DATA> );
my $str =3D join( '|', grep { /^(.+?)\t/ && $1 =3D=3D 0; } @dbf );
print "$str\n";
__DATA__
0.00 bldsab hjh
1 asd qwe
0 jlks hjkhkjhkj
000 hjkhd hjkhkjhkj
4 123 asd
------------------------------
Date: Sun, 01 Jun 2008 19:11:50 GMT
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: One of thos d'uh moments
Message-Id: <ear54455rmgts0rpvkd0fi4829itg8og2q@4ax.com>
Martijn Lievaart <m@rtij.nl.invlalid> wrote:
>>>$stuff = join('|', grep(/^0\t/, @dbf));
>>
>> He's looking for the numerical value 0, not the string '0' as the first
>> value each line.
>
>Yes, I realized that. However, in many (most) data the numerical value 0
>is always the string '0'. It might be '0.00000', in which case my
>solution does not work. It might be '', in which case the code is not
>"use warnings;" safe.
Careful. It might also be an odd way to check for "first item is any
text" i.e. not a number (obviously doesn't work for 0).
We just don't know what the OP had in mind when writing that condition.
>If it really must be the same:
>$stuff = join('|', grep((split(/\t/, $_))[0]==0, @dbf));
That's what I came up with in the end, too.
chomp( my @dbf = <DATA> );
print join ('|', grep ((split(/\t/))[0] == 0, @dbf));
__DATA__
0.00 bldsab hjh
1 asd qwe
0 jlks hjkhkjhkj
000 hjkhd hjkhkjhkj
4 123 asd
foo bar wahtever
nil asdflkj
>However that starts to border on the obscure. Lets try again:
Well, if you explicitely ask for a one-liner then you should accept that
it may not be pretty.
But I think the main point is to realize that there is no need to build
up the result list piece by piece manually but that instead it is much
more convenient to just filter the input list for 'good elements' using
grep(). And that boils down to finding an expression to identify the
'good' elements. How you do that in detail is probably a matter of
personal taste.
jue
------------------------------
Date: Sun, 1 Jun 2008 11:41:59 -0700 (PDT)
From: howa <howachen@gmail.com>
Subject: Perl read file eat up my memory...
Message-Id: <701d8f80-eb5f-47f9-939e-f40ba0c2bfd2@y22g2000prd.googlegroups.com>
Hi,
I have a SQL file (generated by mysql), it is over 2GB in size and its
few lines are:
cat -n test.sql
1 -- MySQL dump 8.23
2 --
3 ...
4 ...
Now, I have a program to read the file line by line:
#!/usr/bin/perl
use strict;
if ( scalar(@ARGV) == 1 ) {
my $filename = ( $ARGV[0] );
open(IN_FILE, $filename) or die("Could not open the file.");
my $line;
foreach $line (<IN_FILE>) {
print "Test";
exit;
}
close(IN_FILE);
}
Suppose the file will read the first line and exit, however, it was
halt and eating my memory forever, no output for print "Test" or exit
at all.
Any idea?
Howard.
------------------------------
Date: Sun, 01 Jun 2008 18:52:54 GMT
From: "A. Sinan Unur" <1usa@llenroc.ude.invalid>
Subject: Re: Perl read file eat up my memory...
Message-Id: <Xns9AB0976216956asu1cornelledu@127.0.0.1>
howa <howachen@gmail.com> wrote in news:701d8f80-eb5f-47f9-939e-
f40ba0c2bfd2@y22g2000prd.googlegroups.com:
> Now, I have a program to read the file line by line:
No you don't.
> my $line;
>
> foreach $line (<IN_FILE>) {
Using a for loop here will read the entire file into memory first, before
it can begin to process the lines.
Instead, use a while loop which will indeed read the file line-by-line:
while ( my $line = <IN_FILE> ) {
Sinan
--
A. Sinan Unur <1usa@llenroc.ude.invalid>
(remove .invalid and reverse each component for email address)
comp.lang.perl.misc guidelines on the WWW:
http://www.rehabitation.com/clpmisc/
------------------------------
Date: Sun, 01 Jun 2008 19:27:04 GMT
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: Perl read file eat up my memory...
Message-Id: <9ot544tu8at5cmpmtt4mug3hnbprgvetku@4ax.com>
howa <howachen@gmail.com> wrote:
>Now, I have a program to read the file line by line:
>
> foreach $line (<IN_FILE>) {
But you don't. You are creating a list of all the lines in the file,
then looping through that list.
You are probably looking for
while (my $line= <IN_FILE>) {
jue
------------------------------
Date: Sun, 01 Jun 2008 15:30:18 GMT
From: "Andrew Koenig" <ark@acm.org>
Subject: Re: Python's doc problems: sort
Message-Id: <egz0k.17643$SV4.4897@bgtnsc04-news.ops.worldnet.att.net>
<xahlee@gmail.com> wrote in message
news:929d5ce9-9063-4e6c-98aa-89526f89fba3@y18g2000pre.googlegroups.com...
> I want to emphasize a point here, as i have done quite emphatically in
> the past. The Python documentation, is the world's worst technical
> writing. As far as technical writing goes, it is even worse than
> Perl's in my opinion.
I think that this claim says more about its author than it does about its
subject.
Welcome to my killfile.
------------------------------
Date: Sun, 01 Jun 2008 19:16:28 GMT
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: Python's doc problems: sort
Message-Id: <e2t544p3g90iqrg977hbc8qkgv4c9np6aa@4ax.com>
"Andrew Koenig" <ark@acm.org> wrote:
><xahlee@gmail.com> wrote in message
[Subject: Python's doc problems: sort]
>> I want to emphasize a point here, as i have done quite emphatically in
>> the past. The Python documentation, is the world's worst technical
And WTF does Python documentation have to do with Perl of Lisp?
szr, do you still have any doubts about the nature of xahlee?
>Welcome to my killfile.
Done a long, long time ago.
Follow-up set.
jue
------------------------------
Date: 6 Apr 2001 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 6 Apr 01)
Message-Id: <null>
Administrivia:
#The Perl-Users Digest is a retransmission of the USENET newsgroup
#comp.lang.perl.misc. For subscription or unsubscription requests, send
#the single line:
#
# subscribe perl-users
#or:
# unsubscribe perl-users
#
#to almanac@ruby.oce.orst.edu.
NOTE: due to the current flood of worm email banging on ruby, the smtp
server on ruby has been shut off until further notice.
To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.
#To request back copies (available for a week or so), send your request
#to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
#where x is the volume number and y is the issue number.
#For other requests pertaining to the digest, send mail to
#perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
#sending perl questions to the -request address, I don't have time to
#answer them even if I did know the answer.
------------------------------
End of Perl-Users Digest V11 Issue 1600
***************************************