[23533] in Perl-Users-Digest
Perl-Users Digest, Issue: 5742 Volume: 10
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Sun Nov 2 21:06:19 2003
Date: Sun, 2 Nov 2003 18:05:06 -0800 (PST)
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, 2 Nov 2003 Volume: 10 Number: 5742
Today's topics:
Help a non-Perl user update an older program... (Nathan Childress)
Re: Help a non-Perl user update an older program... <nospam_for_jkeen@concentric.net>
Help using Getopt::Mixed <stanb@panix.com>
Re: Help using Getopt::Mixed <jwillmore@remove.adelphia.net>
Re: Help using Getopt::Mixed <stanb@panix.com>
How big can an array be ? (VK4TEC\)
Re: How big can an array be ? <ak+usenet@freeshell.org>
Re: How big can an array be ? <jwillmore@remove.adelphia.net>
Re: How big can an array be ? <REMOVEsdnCAPS@comcast.net>
Re: how to automate webpage interaction? <xx087@freenet.carleton.ca>
sub confusion <walterg@example.com>
Re: sub confusion <invalid-email@rochester.rr.com>
Re: sub confusion <xx087@freenet.carleton.ca>
Re: sub confusion <REMOVEsdnCAPS@comcast.net>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 2 Nov 2003 10:11:37 -0800
From: sauroneru@hotmail.com (Nathan Childress)
Subject: Help a non-Perl user update an older program...
Message-Id: <68e73375.0311021011.73d14c03@posting.google.com>
There's a popular (and very nice) Perl program called "Showtimes" that
grabs movie listings off of the internet and converts them to Palm PDA
files. It's currently unsupported, and its link to IMDB doesn't work
anymore. I don't program in Perl, but looking through the code I
think I found the problem lines, although I have no idea how to fix
them. The problem (I think) is that IMDB used to have links to movies
in the form of "http://www.imdb.com/title?1234", but now it uses
"http://www.imdb.com/title/tt1234". Also, the plot summary used to be
found at "http://us.imdb.com/Plot?1234", whereas now it's at
"http://us.imdb.com/title/tt1234/plotsummary". Here is the the
relevant portion of the old code:
==========================
# This URL still works, I think
my $URL = 'http://us.imdb.com/Tfuzzy?title=' . $safetitle .
"&type=$st&sort=chrono&tv=off";
my $content = grabpage ( $URL, 1 );
last SEARCHTYPE unless ( defined ( $content ));
# Search for the first entry in the Movies section.
if (( $content =~ s|^.*?<A NAME=\"mov\">||s ) &&
( $content =~ m|<A HREF=\"/Title\?(.*?)\">(.*?)</A>| ))
{
$number = $1;
$match = $2;
# Grab the main details page.
$content = grabpage ( "http://us.imdb.com/Title/$number", 1 );
last SEARCHTYPE unless ( defined ( $content ));
print " [$match]";
$EMCache { Movies }{ $title }{ Data } .= "$match";
$EMCache { Movies }{ $title }{ LastAccess } = time ();
$EMCache { Movies }{ $title }{ OnDevice } = 0;
# Check for a plot summary ...
if ( $content =~ /<B CLASS=\"ch\">Plot Summary: / )
{
$content = grabpage ( "http://us.imdb.com/Plot?$number", 1 );
last SEARCHTYPE unless ( defined ( $content ));
if ( $content =~ /<P CLASS=\"plotpar\">(.*?)<\/P>/s )
{
my $plot = $1;
$plot =~ s/<.*?>//sg;
$plot =~ tr/\012/ /;
$EMCache { Movies }{ $title }{ Data } .= "\012$plot";
if ( $content =~ /Summary written by <.*?> (.*?)<\/A><\/P>/s )
{
my $cred = $1;
$EMCache { Movies }{ $title }{ Data } .= "\012Summary by
$cred";
}
$found = 1;
}
}
# ... or a plot outline.
elsif ( $content =~ /<B CLASS=\"ch\">Plot Outline: <\/B>(.*?)[
\(]+</s )
{
my $outline = $1;
$EMCache { Movies }{ $title }{ Data } .= "\012$outline";
$found = 1;
}
last SEARCHTYPE;
}
}
==========================
The full original program (highly recommended) can be found at
http://showtimes.jrray.org/. I have no idea how to use Perl to fix
the code, but I assume it would be useful to a lot of people. I just
thought that if anyone was interested, this might not be so hard to
fix.
------------------------------
Date: 03 Nov 2003 00:20:33 GMT
From: "James E Keenan" <nospam_for_jkeen@concentric.net>
Subject: Re: Help a non-Perl user update an older program...
Message-Id: <bo470h$9ss@dispatch.concentric.net>
"Nathan Childress" <sauroneru@hotmail.com> wrote in message
news:68e73375.0311021011.73d14c03@posting.google.com...
> There's a popular (and very nice) Perl program called "Showtimes" that
> grabs movie listings off of the internet and converts them to Palm PDA
> files. It's currently unsupported, and its link to IMDB doesn't work
> anymore. I don't program in Perl, but looking through the code I
> think I found the problem lines, although I have no idea how to fix
> them. The problem (I think) is that IMDB used to have links to movies
> in the form of "http://www.imdb.com/title?1234", but now it uses
> "http://www.imdb.com/title/tt1234". Also, the plot summary used to be
> found at "http://us.imdb.com/Plot?1234", whereas now it's at
> "http://us.imdb.com/title/tt1234/plotsummary". Here is the the
> relevant portion of the old code:
>
Assuming that the problem is located in the section of the code you
supplied, what happens if you make the following 2 substitutions:
> $content = grabpage ( "http://us.imdb.com/Title/$number", 1 );
$content = grabpage ( "http://us.imdb.com/title/tt$number", 1 );
... and later ...
> $content = grabpage ( "http://us.imdb.com/Plot?$number", 1 );
$content = grabpage ( "http://us.imdb.com/title/tt$number/plotsummary",
1 );
I don't have a Palm so there's no way for me to truly test this out. For it
to work, Google's "fuzzy search" implied in this line of code must probably
be unchanged:
> my $URL = 'http://us.imdb.com/Tfuzzy?title=' . $safetitle .
"&type=$st&sort=chrono&tv=off";
jimk
------------------------------
Date: Sun, 2 Nov 2003 14:07:53 +0000 (UTC)
From: Stan Brown <stanb@panix.com>
Subject: Help using Getopt::Mixed
Message-Id: <bo333p$23a$1@reader2.panix.com>
I'm trying to add a usage message to a script that uses Getopt::Mixed. I
want to print this message whenever a bad commnad line option is passed to
the script. I' using the module like this:
use Getopt::Mixed "nextOption" ;
Getopt::Mixed::init('F i e f=s d:i debug:i configfile=s');
my $badOption = \&print_usage;
while (($option, $value, $pretty) = nextOption()) {
if(( $option eq 'f') || ( $option eq 'configfile' ))
I just added the "print_usage" line, based upon my reading of the perldoc
page on this module, but it's not calling the print_usage() function
(which is defiend earlier in the script, when I pass it an undefined
argument (-Z for instance).
Instead, I get the following generic error mesage:
webcam.pl: unrecognized option `-Z'
What am I doing wrong here?
--
"They that would give up essential liberty for temporary safety deserve
neither liberty nor safety."
-- Benjamin Franklin
------------------------------
Date: Sun, 02 Nov 2003 15:24:46 GMT
From: James Willmore <jwillmore@remove.adelphia.net>
Subject: Re: Help using Getopt::Mixed
Message-Id: <20031102102446.45255dd6.jwillmore@remove.adelphia.net>
On Sun, 2 Nov 2003 14:07:53 +0000 (UTC)
Stan Brown <stanb@panix.com> wrote:
> I'm trying to add a usage message to a script that uses
> Getopt::Mixed. I want to print this message whenever a bad commnad
> line option is passed to the script. I' using the module like this:
>
> use Getopt::Mixed "nextOption" ;
>
>
> Getopt::Mixed::init('F i e f=s d:i debug:i configfile=s');
> my $badOption = \&print_usage;
> while (($option, $value, $pretty) = nextOption()) {
> if(( $option eq 'f') || ( $option eq 'configfile' ))
>
> I just added the "print_usage" line, based upon my reading of the
> perldoc page on this module, but it's not calling the print_usage()
> function(which is defiend earlier in the script, when I pass it an
> undefined argument (-Z for instance).
>
> Instead, I get the following generic error mesage:
>
> webcam.pl: unrecognized option `-Z'
Try:
--worked for me, but my not for you--
#!/usr/bin/perl -w
use strict;
use warnings;
use diagnostics;
sub print_usage{
print "Usage .....\n";
print "Bad option was: $_[1]\n";
#you _need_ the 'exit' here, or you'll get an infinite loop :-)
exit;
}
use Getopt::Mixed qw(nextOption) ;
Getopt::Mixed::init('F i e f=s d:i debug:i configfile=s');
$Getopt::Mixed::badOption = \&print_usage;
while (my($option, $value) = nextOption()) {
if(( $option eq 'f') || ( $option eq 'configfile' )){
print "if stuff here ...\n";
}
}
Getopt::Mixed::cleanup();
----end---
I'm thinking the author left out the part about needing the
'$Getopt::Mixed' from the begining of 'badOption'. 'badOption' is a
reference to a subroutine that's used in the module. In order to set
this reference, you need to define where the reference points to
(which you tried) _ and_ what it's namespace is (which you didn't do,
but the author did not make clear - the 'Getopt::Mixed' portion).
Plsu, I don't think you need the $pretty" in the exampl you gave. I'm
not even sure _where_ you got that from. There's no refereence to it
in the documentation that I found. But, to be fair, I'd only read
what I needed to read :-)
I know what I'm trying to say, but not sure if I'm saying it
correctly. Bottom line - it worked for me and I'm thinking it'll work
for you :-)
HTH
--
Jim
Copyright notice: all code written by the author in this post is
released under the GPL. http://www.gnu.org/licenses/gpl.txt
for more information.
a fortune quote ...
Mark's Dental-Chair Discovery: Dentists are incapable of asking
questions that require a simple yes or no answer.
------------------------------
Date: Sun, 2 Nov 2003 17:29:55 +0000 (UTC)
From: Stan Brown <stanb@panix.com>
Subject: Re: Help using Getopt::Mixed
Message-Id: <bo3euj$561$1@reader2.panix.com>
In <20031102102446.45255dd6.jwillmore@remove.adelphia.net> James Willmore <jwillmore@remove.adelphia.net> writes:
>On Sun, 2 Nov 2003 14:07:53 +0000 (UTC)
>Stan Brown <stanb@panix.com> wrote:
>> I'm trying to add a usage message to a script that uses
>> Getopt::Mixed. I want to print this message whenever a bad commnad
>> line option is passed to the script. I' using the module like this:
>>
>> use Getopt::Mixed "nextOption" ;
>>
>>
>> Getopt::Mixed::init('F i e f=s d:i debug:i configfile=s');
>> my $badOption = \&print_usage;
>> while (($option, $value, $pretty) = nextOption()) {
>> if(( $option eq 'f') || ( $option eq 'configfile' ))
>>
>> I just added the "print_usage" line, based upon my reading of the
>> perldoc page on this module, but it's not calling the print_usage()
>> function(which is defiend earlier in the script, when I pass it an
>> undefined argument (-Z for instance).
>>
>> Instead, I get the following generic error mesage:
>>
>> webcam.pl: unrecognized option `-Z'
Thanks, that was exactly what I had wrong. Now it works.
Thanks, again.
--
"They that would give up essential liberty for temporary safety deserve
neither liberty nor safety."
-- Benjamin Franklin
------------------------------
Date: Sun, 2 Nov 2003 17:57:01 +1000
From: "Andrew Rich \(VK4TEC\)" <vk4tec@hotmail.com>
Subject: How big can an array be ?
Message-Id: <3fa4b8de_1@news.iprimus.com.au>
Is there any limitation to a PERL array size ?
If I was to load a MySQL database into an array...
or
open (FILE,"/somemonsterfile"):
while (<FILE>)
{
push @array, $_
}
------------------------------
Date: Sun, 2 Nov 2003 15:20:06 +0000 (UTC)
From: Andreas Kahari <ak+usenet@freeshell.org>
Subject: Re: How big can an array be ?
Message-Id: <slrnbqa851.1a4.ak+usenet@mx.freeshell.org>
In article <3fa4b8de_1@news.iprimus.com.au>, Andrew Rich (VK4TEC) wrote:
> Is there any limitation to a PERL array size ?
>
> If I was to load a MySQL database into an array...
>
> or
>
> open (FILE,"/somemonsterfile"):
> while (<FILE>)
> {
> push @array, $_
> }
You probably can't load more into memory than what can be fit
into primary memory. Some operating systems may possibly let
you load enough to fill out both primary and [disk based]
virtual memory.
However, most of the time you should work on large files line by
line. There is very seldom any need to slurp a whole monster
file into memory at once, especially not databases since the
whole point of the database is to query it with a structured
query and parse the result row by row.
--
Andreas Kähäri
------------------------------
Date: Sun, 02 Nov 2003 15:28:57 GMT
From: James Willmore <jwillmore@remove.adelphia.net>
Subject: Re: How big can an array be ?
Message-Id: <20031102102857.01903807.jwillmore@remove.adelphia.net>
On Sun, 2 Nov 2003 17:57:01 +1000
"Andrew Rich \(VK4TEC\)" <vk4tec@hotmail.com> wrote:
> Is there any limitation to a PERL array size ?
>
> If I was to load a MySQL database into an array...
Stop right there.
_Why_ are you trying to load a whole MySQL database into an array?
Why not use the DBI module to do whatever it is you want to do?
--
Jim
Copyright notice: all code written by the author in this post is
released under the GPL. http://www.gnu.org/licenses/gpl.txt
for more information.
a fortune quote ...
Just remember: when you go to court, you are trusting your fate
to twelve people that weren't smart enough to get out of jury
duty!
------------------------------
Date: Sun, 02 Nov 2003 17:19:21 -0600
From: "Eric J. Roode" <REMOVEsdnCAPS@comcast.net>
Subject: Re: How big can an array be ?
Message-Id: <Xns9427BA7BD8481sdn.comcast@216.196.97.136>
-----BEGIN xxx SIGNED MESSAGE-----
Hash: SHA1
- -----BEGIN xxx SIGNED MESSAGE-----
Hash: SHA1
"Andrew Rich \(VK4TEC\)" <vk4tec@hotmail.com> wrote in news:3fa4b8de_1
@news.iprimus.com.au:
> Is there any limitation to a PERL array size ?
>
> If I was to load a MySQL database into an array...
>
> or
>
> open (FILE,"/somemonsterfile"):
> while (<FILE>)
> {
> push @array, $_
> }
Well, for starters, that's a fairly inefficient way to load a file into an
array. Try @array = <FILE>.
The answer to your question is: the limit is how much virtual memory you
have. Bear in mind that scalars (each array element is a scalar) have a
certain amount of memory overhead, and arrays themselves have some
overhead. So you can't load a 1Gb file into an array if you have 1Gb of
virtual memory.
The real answer, however, is almost certainly: "You're going about this the
wrong way." Why on earth you would read a huge file into memory is beyond
me. There are surely better ways to access your data. (Especially if it's
a MySQL database!)
- - --
Eric
$_ = reverse sort $ /. r , qw p ekca lre uJ reh
ts p , map $ _. $ " , qw e p h tona e and print
- -----BEGIN xxx SIGNATURE-----
Version: PGPfreeware 7.0.3 for non-commercial use <http://www.pgp.com>
iQA/AwUBP6WRD2PeouIeTNHoEQI1aACglkr5Yu7sXEMLXGkoB5yU05kwH6wAoPBn
mXhGm5GvfB44hj9p9QDJrchR
=N7/k
- -----END PGP SIGNATURE-----
-----BEGIN xxx SIGNATURE-----
Version: PGPfreeware 7.0.3 for non-commercial use <http://www.pgp.com>
iQA/AwUBP6WRGWPeouIeTNHoEQJ8/wCeKkS0J1PHgAQ2FMCZpGM+a5J7noQAnAwc
Fng2S3wGhe35p1/V2o4slmQa
=TL1u
-----END PGP SIGNATURE-----
------------------------------
Date: 2 Nov 2003 22:05:18 GMT
From: Glenn Jackman <xx087@freenet.carleton.ca>
Subject: Re: how to automate webpage interaction?
Message-Id: <slrnbqavu6.ilr.xx087@smeagol.ncf.ca>
walala <mizhael@yahoo.com> wrote:
> use WWW::Automate;
> my $agent = WWW::Automate->new();
> $url='mail.yahoo.com';
> $agent->get($url);
> $agent->form(2);
[...]
> However, it gives error message that "there is no form number 2"...
Have you read the WWW::Automate documentation?
Have you read the source for mail.yahoo.com? How many forms are there?
--
Glenn Jackman
NCF Sysadmin
glennj@ncf.ca
------------------------------
Date: Sun, 02 Nov 2003 20:35:41 GMT
From: <walterg@example.com>
Subject: sub confusion
Message-Id: <xUdpb.2524$Wy2.34429@typhoon.sonic.net>
I couldn't find the solution to this on google, so... There must be
some way to write two simple functions to convert a single digit date
to a two digit date and strip the ":" characters from time.
Thanks in advance,
Walter
#!perl
$today=`date`;
($weekday, $month, $day, $time, $junk) = split(' ', $today, 5);
$daynum = DayToNum( $day );
$timenum = TimeToNum( $time );
## 1 -> 01
print "\$daynum\( $day \) = $daynum \n";
## 12:16:56 -> 121656
print "\$timenum\( $time \) = $timenum \n";
sub DayToNum {
## doesn't work
if ( length lt 2 ) { $_ = "0" . "$_"; }
## doesn't work
# if (/^1$/) { return "01"; }
# elsif (/^2$/) { return "02"; }
# elsif (/^3$/) { return "03"; }
# elsif (/^4$/) { return "04"; }
# elsif (/^5$/) { return "05"; }
# elsif (/^6$/) { return "06"; }
# elsif (/^7$/) { return "07"; }
# elsif (/^8$/) { return "08"; }
# elsif (/^9$/) { return "09"; }
# else { return "$_"; }
}
sub TimeToNum {
## doesn't work
s/://g;
## doesn't work
# $_ =~ s/://g;
## works...
# $timenum = $time;
# $timenum=~ s/://g;
}
------------------------------
Date: Sun, 02 Nov 2003 21:32:33 GMT
From: Bob Walton <invalid-email@rochester.rr.com>
Subject: Re: sub confusion
Message-Id: <3FA576CC.3010701@rochester.rr.com>
walterg@example.com wrote:
> I couldn't find the solution to this on google, so... There must be
> some way to write two simple functions to convert a single digit date
> to a two digit date and strip the ":" characters from time.
...
> Walter
>
> #!perl
> $today=`date`;
You might consider using Perl's builtin localtime() function rather than
your OS's date command -- it doesn't fire off a process, and is far more
portable. Further, if you evaluate localtime() is a list context, you
will directly get the numeric information you are looking for. See:
perldoc -f localtime
> ($weekday, $month, $day, $time, $junk) = split(' ', $today, 5);
> $daynum = DayToNum( $day );
> $timenum = TimeToNum( $time );
>
> ## 1 -> 01
> print "\$daynum\( $day \) = $daynum \n";
-----------------^-------^
It is not necessary to backslash-quote parens in a double-quoted string.
> ## 12:16:56 -> 121656
> print "\$timenum\( $time \) = $timenum \n";
------------------^--------^
Ditto.
>
> sub DayToNum {
> ## doesn't work
That's because you need to pick up the argument to your sub. Something
like:
$_=shift;
or
$_=$_[0];
should do the trick.
> if ( length lt 2 ) { $_ = "0" . "$_"; }
<-----------------^^
If you want to do a numeric comparison, you need to use a numeric
comparison operator like < rather than a string comparison operator like
lt. Also, in "$_" you have a "useless use of double-quoted string".
While not normally a problem, it does have its subtle little points, and
should not normally be done.
> ## doesn't work
> # if (/^1$/) { return "01"; }
> # elsif (/^2$/) { return "02"; }
> # elsif (/^3$/) { return "03"; }
> # elsif (/^4$/) { return "04"; }
> # elsif (/^5$/) { return "05"; }
> # elsif (/^6$/) { return "06"; }
> # elsif (/^7$/) { return "07"; }
> # elsif (/^8$/) { return "08"; }
> # elsif (/^9$/) { return "09"; }
> # else { return "$_"; }
> }
> sub TimeToNum {
> ## doesn't work
Same deal -- pick up your argument first:
$_=shift;
> s/://g;
> ## doesn't work
> # $_ =~ s/://g;
> ## works...
> # $timenum = $time;
> # $timenum=~ s/://g;
> }
>
--
Bob Walton
Email: http://bwalton.com/cgi-bin/emailbob.pl
------------------------------
Date: 2 Nov 2003 22:13:57 GMT
From: Glenn Jackman <xx087@freenet.carleton.ca>
Subject: Re: sub confusion
Message-Id: <slrnbqb0ec.ilr.xx087@smeagol.ncf.ca>
<walterg@example.com> <walterg@example.com> wrote:
> $today=`date`;
> ($weekday, $month, $day, $time, $junk) = split(' ', $today, 5);
> $daynum = DayToNum( $day );
> $timenum = TimeToNum( $time );
>
> ## 1 -> 01
> print "\$daynum\( $day \) = $daynum \n";
> ## 12:16:56 -> 121656
> print "\$timenum\( $time \) = $timenum \n";
my ($seconds, $minutes, $hours, $day) = (localtime)[0..3];
my $daynum = sprintf "%02d", $day;
my $timenum = sprintf "%02d%02d%02d", $hours, $minutes, $seconds;
--
Glenn Jackman
NCF Sysadmin
glennj@ncf.ca
------------------------------
Date: Sun, 02 Nov 2003 17:11:29 -0600
From: "Eric J. Roode" <REMOVEsdnCAPS@comcast.net>
Subject: Re: sub confusion
Message-Id: <Xns9427B926014BAsdn.comcast@216.196.97.136>
-----BEGIN xxx SIGNED MESSAGE-----
Hash: SHA1
<walterg@example.com> wrote in news:xUdpb.2524$Wy2.34429
@typhoon.sonic.net:
> sub DayToNum {
> ## doesn't work
> if ( length lt 2 ) { $_ = "0" . "$_"; }
> ## doesn't work
> # if (/^1$/) { return "01"; }
> # elsif (/^2$/) { return "02"; }
> # elsif (/^3$/) { return "03"; }
> # elsif (/^4$/) { return "04"; }
> # elsif (/^5$/) { return "05"; }
> # elsif (/^6$/) { return "06"; }
> # elsif (/^7$/) { return "07"; }
> # elsif (/^8$/) { return "08"; }
> # elsif (/^9$/) { return "09"; }
> # else { return "$_"; }
> }
> sub TimeToNum {
> ## doesn't work
> s/://g;
> ## doesn't work
> # $_ =~ s/://g;
> ## works...
> # $timenum = $time;
> # $timenum=~ s/://g;
> }
Your main confusion seems to be with $_. In a subroutine, the argument
passed does not automatically go into $_. If you want it there, you have
to put it there with a line such as:
local $_ = shift;
There is also a somewhat nicer way to format a number with a leading
zero; use sprintf:
$num_with_leading_zero = sprintf '%02d', $num;
Also, you may want to look into my Time::Format module for doing all
sorts of everyday time/date formatting for display.
- --
Eric
$_ = reverse sort $ /. r , qw p ekca lre uJ reh
ts p , map $ _. $ " , qw e p h tona e and print
-----BEGIN xxx SIGNATURE-----
Version: PGPfreeware 7.0.3 for non-commercial use <http://www.pgp.com>
iQA/AwUBP6WPQWPeouIeTNHoEQI4iQCfS1VJ/vVbOmvkQMPfXGsBrwPc2nIAoJL1
kRpvgZ6oo/vOBSha2gH5YYGE
=qXTi
-----END PGP SIGNATURE-----
------------------------------
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.
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 V10 Issue 5742
***************************************