[30480] in Perl-Users-Digest
Perl-Users Digest, Issue: 1723 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Wed Jul 16 14:14:32 2008
Date: Wed, 16 Jul 2008 11:14:20 -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 Wed, 16 Jul 2008 Volume: 11 Number: 1723
Today's topics:
String comparison operator trouble (J.D. Baldwin)
Re: String comparison operator trouble (Jens Thoms Toerring)
Re: String comparison operator trouble <szrRE@szromanMO.comVE>
Re: String comparison operator trouble <spamtrap@dot-app.org>
Re: String comparison operator trouble <daveb@addr.invalid>
Re: String comparison operator trouble <jimsgibson@gmail.com>
Re: String comparison operator trouble <someone@example.com>
Re: String comparison operator trouble <uri@stemsystems.com>
Re: String comparison operator trouble <jurgenex@hotmail.com>
Re: String comparison operator trouble (J.D. Baldwin)
Re: String comparison operator trouble <daveb@addr.invalid>
Re: String comparison operator trouble <uri@stemsystems.com>
Translate BASH source <usenet@larseighner.com>
Re: Translate BASH source <fawaka@gmail.com>
Re: Translate BASH source <ben@morrow.me.uk>
Re: use/require, and variables <nick@maproom.co.uk>
Re: use/require, and variables <nick@maproom.co.uk>
Re: use/require, and variables <fawaka@gmail.com>
Re: use/require, and variables <jimsgibson@gmail.com>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Wed, 16 Jul 2008 15:36:48 +0000 (UTC)
From: INVALID_SEE_SIG@example.com.invalid (J.D. Baldwin)
Subject: String comparison operator trouble
Message-Id: <g5l4ig$c54$1@reader1.panix.com>
I solved my problem by rewriting, but I'm wondering why I am getting errors
with respect to 'ne' and 'eq' operators.
This code works fine (Perl 5.8.8):
$ cat minimal.pl
#!/opt/gnu/bin/perl
use warnings;
use strict;
my $VAL = 'xyz';
my @foo = ( 'abc', 'def', 'ghi', 'xyz', 'jkl', 'xyz', 'uvw' );
foreach my $item ( @foo )
{
next if ( $item ne $VAL );
print "$item\n";
}
$ ./minimal.pl
xyz
xyz
But if I add a test for 'undef' I get warnings:
$ cat ./minimal2.pl
#!/opt/gnu/bin/perl
use warnings;
use strict;
my $VAL = 'xyz';
my @foo = ( 'abc', 'def', 'ghi', 'xyz', 'jkl', 'xyz', 'uvw' );
foreach my $item ( @foo )
{
next if ( undef $item ) or ( $item ne $VAL );
print "$item\n";
}
$ ./minimal2.pl
Use of uninitialized value in string ne at ./minimal2.pl line 12.
Use of uninitialized value in string ne at ./minimal2.pl line 12.
Use of uninitialized value in string ne at ./minimal2.pl line 12.
Use of uninitialized value in string ne at ./minimal2.pl line 12.
Use of uninitialized value in string ne at ./minimal2.pl line 12.
Use of uninitialized value in string ne at ./minimal2.pl line 12.
Use of uninitialized value in string ne at ./minimal2.pl line 12.
Even weirder if I try 'eq':
$ cat ./minimal3.pl
#!/opt/gnu/bin/perl
use warnings;
use strict;
my $VAL = 'xyz';
my @foo = ( 'abc', 'def', 'ghi', 'xyz', 'jkl', 'xyz', 'uvw' );
foreach my $item ( @foo )
{
next if ( undef $item ) or ( $item eq $VAL );
print "$item\n";
}
$ ./minimal3.pl
Use of uninitialized value in string eq at ./minimal3.pl line 12.
Use of uninitialized value in concatenation (.) or string at ./minimal3.pl line 14.
Use of uninitialized value in string eq at ./minimal3.pl line 12.
Use of uninitialized value in concatenation (.) or string at ./minimal3.pl line 14.
Use of uninitialized value in string eq at ./minimal3.pl line 12.
Use of uninitialized value in concatenation (.) or string at ./minimal3.pl line 14.
Use of uninitialized value in string eq at ./minimal3.pl line 12.
Use of uninitialized value in concatenation (.) or string at ./minimal3.pl line 14.
Use of uninitialized value in string eq at ./minimal3.pl line 12.
Use of uninitialized value in concatenation (.) or string at ./minimal3.pl line 14.
Use of uninitialized value in string eq at ./minimal3.pl line 12.
Use of uninitialized value in concatenation (.) or string at ./minimal3.pl line 14.
Use of uninitialized value in string eq at ./minimal3.pl line 12.
Use of uninitialized value in concatenation (.) or string at ./minimal3.pl line 14.
Can anyone explain to me why I see this behavior? It seems like a
perfectly normal chained test.
--
_+_ From the catapult of |If anyone disagrees with any statement I make, I
_|70|___:)=}- J.D. Baldwin |am quite prepared not only to retract it, but also
\ / baldwin@panix.com|to deny under oath that I ever made it. -T. Lehrer
***~~~~-----------------------------------------------------------------------
------------------------------
Date: 16 Jul 2008 15:45:19 GMT
From: jt@toerring.de (Jens Thoms Toerring)
Subject: Re: String comparison operator trouble
Message-Id: <6e6jcfF5ittbU1@mid.uni-berlin.de>
J.D. Baldwin <INVALID_SEE_SIG@example.com.invalid> wrote:
> I solved my problem by rewriting, but I'm wondering why I am getting errors
> with respect to 'ne' and 'eq' operators.
> This code works fine (Perl 5.8.8):
> $ cat minimal.pl
> #!/opt/gnu/bin/perl
>
> use warnings;
> use strict;
>
> my $VAL = 'xyz';
>
> my @foo = ( 'abc', 'def', 'ghi', 'xyz', 'jkl', 'xyz', 'uvw' );
>
> foreach my $item ( @foo )
> {
> next if ( $item ne $VAL );
>
> print "$item\n";
> }
> $ ./minimal.pl
> xyz
> xyz
> But if I add a test for 'undef' I get warnings:
> $ cat ./minimal2.pl
> #!/opt/gnu/bin/perl
>
> use warnings;
> use strict;
>
> my $VAL = 'xyz';
>
> my @foo = ( 'abc', 'def', 'ghi', 'xyz', 'jkl', 'xyz', 'uvw' );
>
> foreach my $item ( @foo )
> {
> next if ( undef $item ) or ( $item ne $VAL );
'undef' is an unary operator that undefines what it's applied to,
not a test if the variable is undefined. I guess you meant to use
next if ! defined $item || $item ne $VAL;
or
next unless defined $item && $item eq $val;
Regards, Jens
--
\ Jens Thoms Toerring ___ jt@toerring.de
\__________________________ http://toerring.de
------------------------------
Date: Wed, 16 Jul 2008 08:51:08 -0700
From: "szr" <szrRE@szromanMO.comVE>
Subject: Re: String comparison operator trouble
Message-Id: <g5l5dd02q4l@news4.newsguy.com>
J.D. Baldwin wrote:
> I solved my problem by rewriting, but I'm wondering why I am getting
> errors
> with respect to 'ne' and 'eq' operators.
[...]
> But if I add a test for 'undef' I get warnings:
>
> $ cat ./minimal2.pl
> #!/opt/gnu/bin/perl
>
> use warnings;
> use strict;
>
> my $VAL = 'xyz';
>
> my @foo = ( 'abc', 'def', 'ghi', 'xyz', 'jkl', 'xyz', 'uvw' );
>
> foreach my $item ( @foo )
> {
> next if ( undef $item ) or ( $item ne $VAL );
>
> print "$item\n";
> }
> $ ./minimal2.pl
> Use of uninitialized value in string ne at ./minimal2.pl line 12.
> Use of uninitialized value in string ne at ./minimal2.pl line 12.
> Use of uninitialized value in string ne at ./minimal2.pl line 12.
> Use of uninitialized value in string ne at ./minimal2.pl line 12.
> Use of uninitialized value in string ne at ./minimal2.pl line 12.
> Use of uninitialized value in string ne at ./minimal2.pl line 12.
> Use of uninitialized value in string ne at ./minimal2.pl line 12.
The problem is you're calling undef $item which undefines $item.
What you want to use instead is:
next if ( ! defined $item ) or ( $item ne $VAL );
defined() will tell you if a scalar has been defined or so. For arrays
and hashes, drop the define, as if(@array) and if(%hash) will return
true only if there are items within.
Also see: perldoc -f defined and also: perldoc -f undef
This will help you learn what undef() is used for and about using
defined().
How this helps.
--
szr
------------------------------
Date: Wed, 16 Jul 2008 12:09:48 -0400
From: Sherman Pendley <spamtrap@dot-app.org>
Subject: Re: String comparison operator trouble
Message-Id: <m14p6pizeb.fsf@dot-app.org>
INVALID_SEE_SIG@example.com.invalid (J.D. Baldwin) writes:
> next if ( undef $item ) or ( $item ne $VAL );
Undef() is not a test. It's used to *set* a variable's value to
undef. It returns the undef value, so the above "or" cannot
short-circuit and needs to evaluate the ne comparison, and because
$item is undef at that point, you get warnings.
Try writing it like this instead:
next if ( !defined $item ) or ( $item ne $VAL );
sherm--
--
My blog: http://shermspace.blogspot.com
Cocoa programming in Perl: http://camelbones.sourceforge.net
------------------------------
Date: Wed, 16 Jul 2008 18:14:43 +0200
From: Dave B <daveb@addr.invalid>
Subject: Re: String comparison operator trouble
Message-Id: <g5l6if$lvm$1@registered.motzarella.org>
J.D. Baldwin wrote:
> next if ( undef $item )
$item == undef
or
!defined($item)
"perldoc -f undef" to see why your command does not do what you want, and
the warnings you get are expected.
--
D.
------------------------------
Date: Wed, 16 Jul 2008 09:21:32 -0700
From: Jim Gibson <jimsgibson@gmail.com>
Subject: Re: String comparison operator trouble
Message-Id: <160720080921325004%jimsgibson@gmail.com>
In article <g5l4ig$c54$1@reader1.panix.com>, J.D. Baldwin
<INVALID_SEE_SIG@example.com.invalid> wrote:
> I solved my problem by rewriting, but I'm wondering why I am getting errors
> with respect to 'ne' and 'eq' operators.
>
> But if I add a test for 'undef' I get warnings:
>
> $ cat ./minimal2.pl
> #!/opt/gnu/bin/perl
>
> use warnings;
> use strict;
>
> my $VAL = 'xyz';
>
> my @foo = ( 'abc', 'def', 'ghi', 'xyz', 'jkl', 'xyz', 'uvw' );
>
> foreach my $item ( @foo )
> {
> next if ( undef $item ) or ( $item ne $VAL );
>
> print "$item\n";
> }
The test for defined-ness is defined, not undef. The operator undef
sets the variable to undef.
perldoc -f defined
--
Jim Gibson
------------------------------
Date: Wed, 16 Jul 2008 16:34:49 GMT
From: "John W. Krahn" <someone@example.com>
Subject: Re: String comparison operator trouble
Message-Id: <Jqpfk.7720$nD.1495@pd7urf1no>
Dave B wrote:
> J.D. Baldwin wrote:
>
>> next if ( undef $item )
>
> $item == undef
That won't work correctly either.
$ perl -le'
for my $item ( 0, 1, "two" ) {
print $item if $item == undef;
}
'
0
two
John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order. -- Larry Wall
------------------------------
Date: Wed, 16 Jul 2008 16:46:35 GMT
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: String comparison operator trouble
Message-Id: <x7y741dbf8.fsf@mail.sysarch.com>
>>>>> "DB" == Dave B <daveb@addr.invalid> writes:
DB> J.D. Baldwin wrote:
>> next if ( undef $item )
DB> $item == undef
very wrong. the only way to test for definedness is with defined. wipe
that idiom out of your brain. just to make it clear, try that with any
false value in $item (and enable warnings too for more results).
uri
--
Uri Guttman ------ uri@stemsystems.com -------- http://www.sysarch.com --
----- Perl Code Review , Architecture, Development, Training, Support ------
--------- Free Perl Training --- http://perlhunter.com/college.html ---------
--------- Gourmet Hot Cocoa Mix ---- http://bestfriendscocoa.com ---------
------------------------------
Date: Wed, 16 Jul 2008 16:52:19 GMT
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: String comparison operator trouble
Message-Id: <uc9s74pde3v0kdfoduqhi810sie84d122s@4ax.com>
Dave B <daveb@addr.invalid> wrote:
>J.D. Baldwin wrote:
>
>> next if ( undef $item )
>
>$item == undef
This doesn't do what you seem to think it is doing.
First of all it will trigger two warnings (for generic $item):
- Use of uninitialized value in numeric eq (==) [*]
- Argument "...." isn't numeric in numeric eq (==) [**]
[*]: because undef is not initialized, surprise, surprise
[**]: because in the generic case $item may contain a string or -gasp-
be undefined instead of number.
And second the numerical value of undef is 0 and therefore this
comparison will yield true whenever the numerical value of $item is 0,
in particular also when $item contains a string that does not start with
a number.
jue
------------------------------
Date: Wed, 16 Jul 2008 16:57:26 +0000 (UTC)
From: INVALID_SEE_SIG@example.com.invalid (J.D. Baldwin)
Subject: Re: String comparison operator trouble
Message-Id: <g5l99m$i7b$1@reader1.panix.com>
In the previous article, Jens Thoms Toerring <jt@toerring.de> wrote:
> 'undef' is an unary operator that undefines what it's applied to,
> not a test if the variable is undefined. I guess you meant to use
<slaps forehead>
So much for focusing on the comparison operator.
Thank you (and you others) for setting me straight on this.
undef ne ( ! defined ). Got it.
--
_+_ From the catapult of |If anyone disagrees with any statement I make, I
_|70|___:)=}- J.D. Baldwin |am quite prepared not only to retract it, but also
\ / baldwin@panix.com|to deny under oath that I ever made it. -T. Lehrer
***~~~~-----------------------------------------------------------------------
------------------------------
Date: Wed, 16 Jul 2008 19:37:51 +0200
From: Dave B <daveb@addr.invalid>
Subject: Re: String comparison operator trouble
Message-Id: <g5lbeb$cbe$1@registered.motzarella.org>
Jürgen Exner wrote:
> Dave B <daveb@addr.invalid> wrote:
>> J.D. Baldwin wrote:
>>
>>> next if ( undef $item )
>> $item == undef
>
> This doesn't do what you seem to think it is doing.
Thank you, John and Uri for correcting me on this. It seemed to work in a
quick and simple test like perl -e 'print "ok" if $var == undef;' but, as
you correctly point out, that idiom cannot be used in general.
Thanks
--
D.
------------------------------
Date: Wed, 16 Jul 2008 18:08:05 GMT
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: String comparison operator trouble
Message-Id: <x7tzepaeii.fsf@mail.sysarch.com>
>>>>> "DB" == Dave B <daveb@addr.invalid> writes:
DB> Jürgen Exner wrote:
>> Dave B <daveb@addr.invalid> wrote:
>>> J.D. Baldwin wrote:
>>>
>>>> next if ( undef $item )
>>> $item == undef
>>
>> This doesn't do what you seem to think it is doing.
DB> Thank you, John and Uri for correcting me on this. It seemed to work in a
DB> quick and simple test like perl -e 'print "ok" if $var == undef;' but, as
DB> you correctly point out, that idiom cannot be used in general.
in general or at all. it fails for too many scalar values (as someone
else said, any string that starts with a non-digit will fail among
others). so don't call it an idiom, it is a bug.
uri
--
Uri Guttman ------ uri@stemsystems.com -------- http://www.sysarch.com --
----- Perl Code Review , Architecture, Development, Training, Support ------
--------- Free Perl Training --- http://perlhunter.com/college.html ---------
--------- Gourmet Hot Cocoa Mix ---- http://bestfriendscocoa.com ---------
------------------------------
Date: Wed, 16 Jul 2008 17:02:02 +0000 (UTC)
From: Lars Eighner <usenet@larseighner.com>
Subject: Translate BASH source
Message-Id: <slrng7sa2l.1r1.usenet@debranded.larseighner.com>
Will 'require' serve as a translation for Bash 'source' ('.').
I am trying translate a BASH script.
The Bash script includes something like
. filefoo
where filefoo is a whole bunch of variable assignments.
It is easy enough to translate the variable assignments to perl.
If I tanslate filefoo and stick a 'return 1;' at the bottom, would 'require
filefoo' be a reasonable translation of the Bash . filefoo?
--
Lars Eighner <http://larseighner.com/> usenet@larseighner.com
Give me chastity and continence, but not just now. -- St. Augustine
------------------------------
Date: Wed, 16 Jul 2008 19:10:22 +0200
From: Leon Timmermans <fawaka@gmail.com>
Subject: Re: Translate BASH source
Message-Id: <50bcc$487e2b7e$89e0e08f$2685@news1.tudelft.nl>
On Wed, 16 Jul 2008 17:02:02 +0000, Lars Eighner wrote:
> Will 'require' serve as a translation for Bash 'source' ('.').
>
> I am trying translate a BASH script.
>
> The Bash script includes something like
>
> . filefoo
>
> where filefoo is a whole bunch of variable assignments.
>
> It is easy enough to translate the variable assignments to perl.
>
> If I tanslate filefoo and stick a 'return 1;' at the bottom, would
> 'require filefoo' be a reasonable translation of the Bash . filefoo?
The literal translation of that would be do.
do 'filefoo';
Having said that, I'm not sure a literal translation from bash to Perl
would make a good program. Is there any reason you need to translate it?
Leon Timmermans
------------------------------
Date: Wed, 16 Jul 2008 18:17:49 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: Translate BASH source
Message-Id: <t2n1l5-7ap1.ln1@osiris.mauzo.dyndns.org>
Quoth Lars Eighner <usenet@larseighner.com>:
> Will 'require' serve as a translation for Bash 'source' ('.').
>
> I am trying translate a BASH script.
>
> The Bash script includes something like
>
> . filefoo
>
> where filefoo is a whole bunch of variable assignments.
'require' has slightly different semantics. In particular, 'require'
will always (and only) search the directories listed in @INC, whereas
'.' will search $PATH iff filefoo doesn't contain a slash.
If you need to keep the 'search $PATH' semantics you'll need to
implement it yourself. If you just want to load a file from the given
path (without doing any searching), use 'do' instead. If you're happy to
install filefoo somewhere in @INC instead of somewhere in $PATH, use
'require'.
> It is easy enough to translate the variable assignments to perl.
Well... it's easy enough to translate them into *bad* Perl. If you
follow the advice everyone in this group gives you and 'use strict' and
declare your variables with 'my', you'll find you can't get at them from
outside the file they're declared in. This is a feature :).
A simple way round, if you're just looking to get the script working
rather than write it well, is to declare the variables with 'our' in
both files. A better answer would be to declare a single %config hash,
and have your included file set that rather than a whole lot of separate
variables. A much better answer would be to use some well-known config
file format, and something like Config::Any to load it for you.
> If I tanslate filefoo and stick a 'return 1;' at the bottom, would 'require
> filefoo' be a reasonable translation of the Bash . filefoo?
It's not usual to use 'return' when ending a required file with a true
value; a line just containing '1;' at the end of the file is much more
common. While you can use 'return' to leave a required file partway
through, I'd consider that very confusing behaviour.
Ben
--
If you put all the prophets, | You'd have so much more reason
Mystics and saints | Than ever was born
In one room together, | Out of all of the conflicts of time.
ben@morrow.me.uk The Levellers, 'Believers'
------------------------------
Date: Wed, 16 Jul 2008 11:34:27 +0100
From: Nick Wedd <nick@maproom.co.uk>
Subject: Re: use/require, and variables
Message-Id: <X19hxJCz6cfIFASy@maproom.demon.co.uk>
In message <slrng7qbl3.qdt.tadmc@tadmc30.sbcglobal.net>, Tad J McClellan
<tadmc@seesig.invalid> writes
>Nick Wedd <nick@maproom.co.uk> wrote:
>
>
>> Thank you! Using "our" works and is compatible with "use strict". I
>> must look up what "our" does,
>
>
>Do that with:
>
> perldoc -f our
>
>then you will be reading documentation that matches whatever
>version of perl you have.
Thanks. I've now read it, I am trying to understand it ...
>> it seems to be more recent than my
>> reference books.
>
>
>Then your reference books must be more than 8 years old...
They are. Publication dates are 1997, 1997, 1999. Can you recommend a
single modern book on Perl, suitable for someone with general
programming knowledge, but little understanding of Perl?
Nick
--
Nick Wedd nick@maproom.co.uk
------------------------------
Date: Wed, 16 Jul 2008 11:38:11 +0100
From: Nick Wedd <nick@maproom.co.uk>
Subject: Re: use/require, and variables
Message-Id: <A1FkxHDT+cfIFAR6@maproom.demon.co.uk>
In message <487ce192$0$48225$815e3792@news.qwest.net>, J. Gleixner
<glex_no-spam@qwest-spam-no.invalid> writes
>Nick Wedd wrote:
>> In message <6e3b3gF51g4fU1@mid.individual.net>, Gunnar Hjalmarsson
>> <noreply@gunnar.cc> writes
>>> Nick Wedd wrote:
>>>> I have always found that putting "use strict" makes life easier for me.
>>>> But now, I am trying to use what C programmers call "#include". I
>>>> have a "main.pl" file, which needs to include another file where
>>>> values are assigned to a variable.
>>> It's not crystal clear what you mean - some code would have been nice -
>>> but...
>> Ok. main.pl says, among other things,
>> require "freqs.pl";
>> $w += @{$indfreq{"foo"}}[5];
>
>IMHO that'd be a bit cleaner as:
>
> $indfreq{ 'foo' }[5]
Thank you. That is definitely an improvement, I can see that.
Nick
>or if you like to have it be more explicit:
>
> $indfreq{ 'foo' }->[5]
>
>> and freqs.pl has many lines such as
>> $indfreq{"foo"} = [ 0, 0, 0, 0, 19440, 68160, 54960, 8640 ];
>> $indfreq{"bar"} = [ 0, 0, 0, 0, 14400, 67800, 59640, 9360 ];
>[...]
--
Nick Wedd nick@maproom.co.uk
------------------------------
Date: Wed, 16 Jul 2008 18:02:30 +0200
From: Leon Timmermans <fawaka@gmail.com>
Subject: Re: use/require, and variables
Message-Id: <e3d89$487e1b96$89e0e08f$2685@news1.tudelft.nl>
On Wed, 16 Jul 2008 11:34:27 +0100, Nick Wedd wrote:
>
> They are. Publication dates are 1997, 1997, 1999. Can you recommend a
> single modern book on Perl, suitable for someone with general
> programming knowledge, but little understanding of Perl?
>
> Nick
I think you might want to take a look at Learning Perl. It's just out and
completely up to date. You can find it at http://easyurl.net/PERL5.
Leon Timmermans
------------------------------
Date: Wed, 16 Jul 2008 09:16:46 -0700
From: Jim Gibson <jimsgibson@gmail.com>
Subject: Re: use/require, and variables
Message-Id: <160720080916467806%jimsgibson@gmail.com>
In article <X19hxJCz6cfIFASy@maproom.demon.co.uk>, Nick Wedd
<nick@maproom.co.uk> wrote:
> In message <slrng7qbl3.qdt.tadmc@tadmc30.sbcglobal.net>, Tad J McClellan
> <tadmc@seesig.invalid> writes
> >Then your reference books must be more than 8 years old...
>
> They are. Publication dates are 1997, 1997, 1999. Can you recommend a
> single modern book on Perl, suitable for someone with general
> programming knowledge, but little understanding of Perl?
perldoc -q books
--
Jim Gibson
------------------------------
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 1723
***************************************