[29635] in Perl-Users-Digest
Perl-Users Digest, Issue: 879 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Mon Sep 24 14:09:45 2007
Date: Mon, 24 Sep 2007 11:09:05 -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 Mon, 24 Sep 2007 Volume: 11 Number: 879
Today's topics:
Calling a 32 bit Library from 64 bit perl extension sstoural@gmail.com
how to make a runnable module (or modular script) ? <bugbear@trim_papermule.co.uk_trim>
Re: how to make a runnable module (or modular script) ? <thepoet_nospam@arcor.de>
Re: how to make a runnable module (or modular script) ? <ben@morrow.me.uk>
Re: how to make a runnable module (or modular script) ? xhoster@gmail.com
Re: how to make a runnable module (or modular script) ? <brian.d.foy@gmail.com>
Perl module for "Instant Messaging" <ignoramus3778@NOSPAM.3778.invalid>
Re: TimeZone calculation on Windows Vista with DateTime <ver_amitabh@yahoo.com>
Re: why do these snippets have different behavior? <tadmc@seesig.invalid>
Re: why do these snippets have different behavior? <bill@ts1000.us>
Re: why do these snippets have different behavior? <bill@ts1000.us>
Re: why do these snippets have different behavior? <tadmc@seesig.invalid>
Re: why do these snippets have different behavior? <ben@morrow.me.uk>
Re: Why no warning when redclaring a variable in same s <tony@skelding.co.uk>
Re: Why no warning when redclaring a variable in same s <dummy@example.com>
Re: Writing a C++ Style Checker <snhirsch@gmail.com>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Mon, 24 Sep 2007 10:01:41 -0700
From: sstoural@gmail.com
Subject: Calling a 32 bit Library from 64 bit perl extension
Message-Id: <1190653301.572486.70640@50g2000hsm.googlegroups.com>
Because of an OS port, I'm faced with a situation where a 64-bit
version of perl (5.8.8) is installed on a Suse Linux 10 server that
needs to call a proprietary 32 bit library. Is there a way to create
a 32 bit extension from a 64 bit version of Perl by forcing xsubpp to
use the 32 bit compiler?
------------------------------
Date: Mon, 24 Sep 2007 09:45:01 +0100
From: bugbear <bugbear@trim_papermule.co.uk_trim>
Subject: how to make a runnable module (or modular script) ?
Message-Id: <13feu8dmesiid5d@corp.supernews.com>
Dear all;
In a large project, I have a requirment to use
a selection of scripts.
Each script is standalone (at the moment),
and the scripts ARE used in isolation.
Hoewever, a very frequent caller of the scripts
is a "dispatcher", which uses ITS parameters
to decide which script to call.
The dispatcher then uses "system" to call
the selected script.
Some investigation has revealed
that a large proportion of time
is going on perl startup (since the
scripts are quite quick).
Is there a "standard" way that I could create
scripts/modules/files/things that
are runnable both straight off the command
line AND as "subscripts" without
incurring a second perl startup?
I would also (strongly) like to keep
each piece of code a separate (single) file;
I would rather NOT have to make a A.pm (module) and A.pl
(script that calls the module) pair for each piece of code.
Suggestions welcomed.
BugBear
------------------------------
Date: Mon, 24 Sep 2007 11:33:58 +0200
From: Christian Winter <thepoet_nospam@arcor.de>
Subject: Re: how to make a runnable module (or modular script) ?
Message-Id: <46f78489$0$30367$9b4e6d93@newsspool4.arcor-online.net>
bugbear wrote:
> In a large project, I have a requirment to use
> a selection of scripts.
>
> Each script is standalone (at the moment),
> and the scripts ARE used in isolation.
>
> Hoewever, a very frequent caller of the scripts
> is a "dispatcher", which uses ITS parameters
> to decide which script to call.
>
> The dispatcher then uses "system" to call
> the selected script.
>
> Some investigation has revealed
> that a large proportion of time
> is going on perl startup (since the
> scripts are quite quick).
>
> Is there a "standard" way that I could create
> scripts/modules/files/things that
> are runnable both straight off the command
> line AND as "subscripts" without
> incurring a second perl startup?
>
> I would also (strongly) like to keep
> each piece of code a separate (single) file;
> I would rather NOT have to make a A.pm (module) and A.pl
> (script that calls the module) pair for each piece of code.
>
> Suggestions welcomed.
perldoc -f do
This way your scripts get executed eval()-like by the current
Perl interpreter instance.
If your subscripts expect command line arguments, you could use
a global array that replaces the default @ARGV in the subscripts
if present, like
------------------- dispatcher --------------------------
#!/usr/bin/perl
use strict;
use warnings;
our @SUBSCRIPT_ARGS;
if( CASE_THAT_LEADS_TO_SUBSCRIPT_ONE ) {
push @SUBSCRIPT_ARGS, 'argument1';
do 'subscript1.pl' or die $!;
} elsif( ... )
...
---------------------- subscript1 ------------------------
#!/usr/bin/perl
use strict;
use warnings;
our @SUBSCRIPT_ARGS;
@ARGV = @SUBSCRIPT_ARGS if( @SUBSCRIPT_ARGS );
print "subscript1 called with argument $ARGV[0].$/";
----------------------------------------------------------
-Chris
------------------------------
Date: Mon, 24 Sep 2007 17:03:28 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: how to make a runnable module (or modular script) ?
Message-Id: <gn3ls4-9b5.ln1@osiris.mauzo.dyndns.org>
Quoth Christian Winter <thepoet_nospam@arcor.de>:
> bugbear wrote:
> >
> > Is there a "standard" way that I could create
> > scripts/modules/files/things that
> > are runnable both straight off the command
> > line AND as "subscripts" without
> > incurring a second perl startup?
> >
> > I would also (strongly) like to keep
> > each piece of code a separate (single) file;
> > I would rather NOT have to make a A.pm (module) and A.pl
> > (script that calls the module) pair for each piece of code.
>
> perldoc -f do
>
> This way your scripts get executed eval()-like by the current
> Perl interpreter instance.
>
> If your subscripts expect command line arguments, you could use
> a global array that replaces the default @ARGV in the subscripts
> if present, like
>
> ------------------- dispatcher --------------------------
> #!/usr/bin/perl
>
> use strict;
> use warnings;
>
> our @SUBSCRIPT_ARGS;
>
> if( CASE_THAT_LEADS_TO_SUBSCRIPT_ONE ) {
> push @SUBSCRIPT_ARGS, 'argument1';
> do 'subscript1.pl' or die $!;
> } elsif( ... )
Or simply
if (...) {
local @ARGV = ...;
do 'subscript1.pl';
}
> ---------------------- subscript1 ------------------------
> #!/usr/bin/perl
>
> use strict;
> use warnings;
>
> our @SUBSCRIPT_ARGS;
>
> @ARGV = @SUBSCRIPT_ARGS if( @SUBSCRIPT_ARGS );
...then there's no need for this.
Ben
------------------------------
Date: 24 Sep 2007 16:22:34 GMT
From: xhoster@gmail.com
Subject: Re: how to make a runnable module (or modular script) ?
Message-Id: <20070924122236.426$ux@newsreader.com>
Ben Morrow <ben@morrow.me.uk> wrote:
> Quoth Christian Winter <thepoet_nospam@arcor.de>:
> > bugbear wrote:
> > >
> > > Is there a "standard" way that I could create
> > > scripts/modules/files/things that
> > > are runnable both straight off the command
> > > line AND as "subscripts" without
> > > incurring a second perl startup?
> > >
> > > I would also (strongly) like to keep
> > > each piece of code a separate (single) file;
> > > I would rather NOT have to make a A.pm (module) and A.pl
> > > (script that calls the module) pair for each piece of code.
> >
> > perldoc -f do
> >
> > This way your scripts get executed eval()-like by the current
> > Perl interpreter instance.
> >
> > If your subscripts expect command line arguments, you could use
> > a global array that replaces the default @ARGV in the subscripts
> > if present, like
> >
> > ------------------- dispatcher --------------------------
> > #!/usr/bin/perl
> >
> > use strict;
> > use warnings;
> >
> > our @SUBSCRIPT_ARGS;
> >
> > if( CASE_THAT_LEADS_TO_SUBSCRIPT_ONE ) {
> > push @SUBSCRIPT_ARGS, 'argument1';
> > do 'subscript1.pl' or die $!;
> > } elsif( ... )
>
> Or simply
>
> if (...) {
> local @ARGV = ...;
> do 'subscript1.pl';
> }
Are there any gotcha's that one should look out for in
doing this?
Thanks,
Xho
--
-------------------- http://NewsReader.Com/ --------------------
The costs of publication of this article were defrayed in part by the
payment of page charges. This article must therefore be hereby marked
advertisement in accordance with 18 U.S.C. Section 1734 solely to indicate
this fact.
------------------------------
Date: Mon, 24 Sep 2007 11:24:14 -0500
From: brian d foy <brian.d.foy@gmail.com>
Subject: Re: how to make a runnable module (or modular script) ?
Message-Id: <240920071124143399%brian.d.foy@gmail.com>
In article <13feu8dmesiid5d@corp.supernews.com>, bugbear
<bugbear@trim_papermule.co.uk_trim> wrote:
> Is there a "standard" way that I could create
> scripts/modules/files/things that
> are runnable both straight off the command
> line AND as "subscripts" without
> incurring a second perl startup?
Turn your scripts into "modulinos", or modules that represent the
script. I talk about this in Mastering Perl's chapter on "Modules as
Programs":
http://www252.pair.com/comdog/mastering_perl/Chapters/18.modulinos.html
------------------------------
Date: Mon, 24 Sep 2007 12:05:30 -0500
From: Ignoramus3778 <ignoramus3778@NOSPAM.3778.invalid>
Subject: Perl module for "Instant Messaging"
Message-Id: <CIKdnTQD7u7Hc2rbnZ2dnUVZ_oGjnZ2d@giganews.com>
I want to write a bot (think IRC bot) that would talk to people over
messengers such as AOL, Yahoo, ICQ, Google Talk etc. The bot is
"Splotchy Artificial Intelligence robot" from algebra.com. I know that
there are perl modules that enable individual messengers. What I want
to find is a module that would encompass all of them, where I set up
my individual IDs in the config and then just let it chat with people.
Any suggestions?
i
------------------------------
Date: Mon, 24 Sep 2007 00:27:31 -0700
From: Ami <ver_amitabh@yahoo.com>
Subject: Re: TimeZone calculation on Windows Vista with DateTime::TimeZone
Message-Id: <1190618851.472964.239140@w3g2000hsg.googlegroups.com>
On Sep 21, 9:35 pm, Ben Morrow <b...@morrow.me.uk> wrote:
> Quoth Ami <ver_amit...@yahoo.com>:
>
>
>
> > On Sep 21, 3:36 am, Ben Morrow <b...@morrow.me.uk> wrote:
> > > Quoth Ami <ver_amit...@yahoo.com>:
>
> > > > Hi All,
> > > > I am using Windows Vista with ActivePerl 5.8.8.822. I have
> > > > downloaded the latest DateTime::TimeZone package from CPAN (DateTime-
> > > > TimeZone-0.67). When I write a small script to work with it, I always
> > > > get error stating that "Cannot determine local time zone.". After
> > > > debugging, I came to know that DateTime package of Perl reads the
> > > > "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
> > > > \TimeZoneInformation\StandardName" to access this information which is
> > > > supposed to contain a Windows name for the time zone (e.g.) but in
> > > > Windows Vista, it contains some dll entry point information
> > > > (@tzres.dll,-492).
>
> > > > The code snippet with which I am trying to work is as follows:
>
> > > > use DateTime::TimeZone;
> > > > my $tz = DateTime::TimeZone->new( name => 'local' );
> > > > $tz = DateTime::TimeZone::Local->TimeZone();
>
> > > > Can any one help me to make it working on Windows Vista?
>
> > > This is clearly a bug in DateTime::TimeZone, or rather an
> > > incompatibility with Vista. It's probably worth filing a bug report on
> > > rt.cpan.org.
>
> > > About the only workaround is to pick the appropriate timezone from the
> > > list returned by DateTime::TimeZone->all_names and set %TZ% in the
> > > environment to that value.
>
> > Many Thanks for your reply.But being a new bee to perl, I am not
> > sure how can retrieve the current time zone from the list returned by
> > all_names() function. What should be the condition to match the
> > current time zone from list?
>
> I'm afraid I don't know. The correct answer is to call the Win32 API
> function GetTimeZoneInformation or GetDynamicTimeZoneInformation, but
> while it would be possible to do this using Win32::API it's not
> something I can construct an example of off the top of my head. I think
> for now you're just going to have to set it manually.
>
> > How can I set the TZ in ENV variable. I tried with
> > $ENV{'TZ'}='Asia/Calcutta';
> > and
> > $ENV{TZ}='America/Chicago';
> > All time I get same date/time;
>
> You probably need to set $ENV{TZ} in a BEGIN block before you load
> DateTime::TimeZone, something like
>
> BEGIN { $ENV{TZ} = 'Asia/Calcutta' }
>
> use DateTime::TimeZone; # or Time::Local, or whatever
>
> You could also set the variable in the 'real' environment, so it's
> always present.
>
> Ben
Hi Ben,
Thanks for your reply. I have tried using
BEGIN { $ENV{TZ} = 'Asia/Calcutta' }
and than
BEGIN { $ENV{TZ} = 'America/Chicago' }
before loading DateTime::TimeZone but i find no impact. It shows
current PC time on using localtime() function. Setting the environmnet
variable TZ to different values also returns same value.
Any other idea, what i might be doing wrong?
Regards
------------------------------
Date: Sun, 23 Sep 2007 21:35:09 GMT
From: Tad McClellan <tadmc@seesig.invalid>
Subject: Re: why do these snippets have different behavior?
Message-Id: <slrnffcjkr.267.tadmc@tadmc30.sbcglobal.net>
Bill H <bill@ts1000.us> wrote:
> Curious - what is the benefit of putting the if at the end of the
> line?
>
> print "v somehow defined: '$v', i = '$i'\n" if defined $v;
>
> versus
>
> if (defined $v){print "v somehow defined: '$v', i = '$i'\n";}
It lets the programmer choose to emphasize the condition
(as in the 2nd above) or to emphasize the action (1st above).
--
Tad McClellan
email: perl -le "print scalar reverse qq/moc.noitatibaher\100cmdat/"
------------------------------
Date: Sun, 23 Sep 2007 15:54:50 -0700
From: Bill H <bill@ts1000.us>
Subject: Re: why do these snippets have different behavior?
Message-Id: <1190588090.762638.146510@d55g2000hsg.googlegroups.com>
On Sep 23, 1:59 pm, Ben Morrow <b...@morrow.me.uk> wrote:
> Quoth Bill H <b...@ts1000.us>:
>
>
>
>
>
>
>
> > It would seem if you start with the "if" it would parse faster than if
> > you end with it. Since, from what I read, perl compiles your code when
> > you run it, it would seem to be easier on the compiler to know ahead
> > of time that the following lines are conditional, instead of compiling
> > the line and then finding out it is conditional. For example:
>
> > if (2 == 3){print "Never print this line\n";}
>
> > would never get compiled (I would assume), but
>
> > print "Never print this line\n" if 2 == 3;
>
> > would get compiled and then thrown away when it reached the if
> > statement. I know this is non-sense code but it illustrates an extreme
> > example.
>
> > If I'm wrong, let me know.
>
> You are wrong. Not only are you completely wrong in detail (the two
> compile to almost exactly the same code, the only difference being that
> the first has a new scope for the body of the if, and in both cases, the
> whole lot is compiled and the dead branch dropped by the optimizer
> later) but this is a completely stupid direction to approach the problem
> from. The only sensible question is which is more readable.
>
> Ben- Hide quoted text -
>
> - Show quoted text -
Ben
I'm glad I am wrong. I am glad that I am completely wrong.
In your tirad you mention that it is dropped by the optimizer. Maybe a
better question from me would have been, how can you write code that
is compiled and optimized faster?
On a side note, why do people get bent out of shape if you ask a
question? How can anyone ever learn if they don't ask?
Bill H
------------------------------
Date: Sun, 23 Sep 2007 15:55:13 -0700
From: Bill H <bill@ts1000.us>
Subject: Re: why do these snippets have different behavior?
Message-Id: <1190588113.121771.263750@n39g2000hsh.googlegroups.com>
On Sep 23, 5:35 pm, Tad McClellan <ta...@seesig.invalid> wrote:
> Bill H <b...@ts1000.us> wrote:
> > Curious - what is the benefit of putting the if at the end of the
> > line?
>
> > print "v somehow defined: '$v', i = '$i'\n" if defined $v;
>
> > versus
>
> > if (defined $v){print "v somehow defined: '$v', i = '$i'\n";}
>
> It lets the programmer choose to emphasize the condition
> (as in the 2nd above) or to emphasize the action (1st above).
>
> --
> Tad McClellan
> email: perl -le "print scalar reverse qq/moc.noitatibaher\100cmdat/"
That makes sense. Thanks Tad
------------------------------
Date: Sun, 23 Sep 2007 18:44:45 -0500
From: Tad McClellan <tadmc@seesig.invalid>
Subject: Re: why do these snippets have different behavior?
Message-Id: <slrnffdujd.beb.tadmc@tadmc30.sbcglobal.net>
Bill H <bill@ts1000.us> wrote:
> It would seem if you start with the "if" it would parse faster than if
> you end with it. Since, from what I read, perl compiles your code when
^^^^
> you run it,
Where did you read that?
From perlrun.pod:
After locating your program, Perl compiles the entire program to an
internal form. If there are any compilation errors, execution of the
program is not attempted.
...
If the program is syntactically correct, it is executed.
The entire program is compiled *before* it is run.
So "which came first in the source" does not affect the
speed of parsing.
--
Tad McClellan
email: perl -le "print scalar reverse qq/moc.noitatibaher\100cmdat/"
------------------------------
Date: Mon, 24 Sep 2007 01:07:19 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: why do these snippets have different behavior?
Message-Id: <nmbjs4-jfd.ln1@osiris.mauzo.dyndns.org>
Quoth Bill H <bill@ts1000.us>:
> On Sep 23, 1:59 pm, Ben Morrow <b...@morrow.me.uk> wrote:
> > Quoth Bill H <b...@ts1000.us>:
> >
> > > It would seem if you start with the "if" it would parse faster than if
> > > you end with it.
<snip>
> >
> > > If I'm wrong, let me know.
> >
> > You are wrong. Not only are you completely wrong in detail (the two
> > compile to almost exactly the same code, the only difference being that
> > the first has a new scope for the body of the if, and in both cases, the
> > whole lot is compiled and the dead branch dropped by the optimizer
> > later) but this is a completely stupid direction to approach the problem
> > from. The only sensible question is which is more readable.
>
> I'm glad I am wrong. I am glad that I am completely wrong.
Good.... :)
> In your tirad you mention that it is dropped by the optimizer. Maybe a
> better question from me would have been, how can you write code that
> is compiled and optimized faster?
No, you've missed my point completely. (I was worried I shouldn't have
put in the technical details.) Except under exceptional circumstances,
it is *simply not worth worrying* about the time it takes to compile
your code, and even when that time is significant, there are more
effective ways to go about reducing it (mod_perl, Autoloader, ...) than
being picky about style.
When it comes to matters of style, the *only* important question is
'which style is more comprehensible?'. The reason Perl has its postfix
logical operators is so you can write things like
next if /^#/;
which is a single 'sentence' and much easier to grasp in one go than
if ($_ =~ /^#/) {
next LINE;
}
The 'and' and 'or' operators exist for much the same reason:
open ... or die ...;
is much easier to read than either
die ... unless open ...;
or
unless (open ...) {
die ...;
}
One of the reasons writing C hurts my head is the need for so much
if (!(fd = open(...))) {
error(...);
}
stuff, and writing it as
fd = open(...);
if (!fd) {
error(...);
}
makes what could have been one idea into at least three, not to mention
completely breaking the flow of the code. It ends up reading like a
legal document.
See also perldoc perlstyle, of course.
> On a side note, why do people get bent out of shape if you ask a
> question? How can anyone ever learn if they don't ask?
On a side note, why do people get offended when they get a slightly curt
response to a rather silly question? How do they expect to learn if
they're more interested in being offended than listening to the answers?
*removes tongue from cheek*
Ben
------------------------------
Date: Sun, 23 Sep 2007 17:36:25 -0700
From: Mintcake <tony@skelding.co.uk>
Subject: Re: Why no warning when redclaring a variable in same scope
Message-Id: <1190594185.806605.13510@57g2000hsv.googlegroups.com>
On Sep 21, 2:51 pm, "John W. Krahn" <du...@example.com> wrote:
> Mintcake wrote:
> > #!/usr/local/bin/perl
>
> > use strict;
> > use warnings;
>
> > for my $i (1..10)
> > {
> > my $i = 0; # Why no warning
> > }
>
> Different scope.
>
> 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
Why different scope? - both instances of $i exist only with the {}
------------------------------
Date: Mon, 24 Sep 2007 02:07:34 GMT
From: "John W. Krahn" <dummy@example.com>
Subject: Re: Why no warning when redclaring a variable in same scope
Message-Id: <GZEJi.73941$Pd4.52436@edtnps82>
Mintcake wrote:
>
> On Sep 21, 2:51 pm, "John W. Krahn" <du...@example.com> wrote:
>>
>> Mintcake wrote:
>>>
>>> #!/usr/local/bin/perl
>>>
>>> use strict;
>>> use warnings;
>>>
>>> for my $i (1..10)
>>> {
>>> my $i = 0; # Why no warning
>>> }
>>
>> Different scope.
>
> Why different scope? - both instances of $i exist only with the {}
The braces {} define scope (within a file) except (Perl has a lot of
exceptions :) for the variable declared for a foreach loop which has "special"
scope.
$ perl -wle'
for my $i ( 0 .. 9 ) {
print __LINE__, ": $i";
my $i = 20;
print __LINE__, ": $i";
}
continue {
print __LINE__, ": $i";
}
print __LINE__, ": $i";
'
Name "main::i" used only once: possible typo at -e line 10.
3: 0
5: 20
8: 0
3: 1
5: 20
8: 1
3: 2
5: 20
8: 2
3: 3
5: 20
8: 3
3: 4
5: 20
8: 4
3: 5
5: 20
8: 5
3: 6
5: 20
8: 6
3: 7
5: 20
8: 7
3: 8
5: 20
8: 8
3: 9
5: 20
8: 9
Use of uninitialized value in concatenation (.) or string at -e line 10.
10:
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: Sun, 23 Sep 2007 20:34:07 -0400
From: Steven Hirsch <snhirsch@gmail.com>
Subject: Re: Writing a C++ Style Checker
Message-Id: <GYidnep8bK1imGrbnZ2dnUVZ_hqdnZ2d@giganews.com>
Ben Morrow wrote:
> There are several parser modules on CPAN. Parse::RecDescent is very
> flexible but rather slow; Parse::Yapp is a direct clone of yacc, which
> it sounds like you're familiar with. The grammar in Inline::CPP is
> written with P::RD, and may well be sufficient for your needs.
There's also 'pbyacc'. It's a variant of Berkeley yacc that can spit out a
very efficient LALR-1 parser in pure Perl. I've used it for a few production
projects and found the generated parser to be considerably faster than any of
the ones I've tried from CPAN. Not sure why it isn't used more.
Steve
------------------------------
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 879
**************************************