[22774] in Perl-Users-Digest
Perl-Users Digest, Issue: 4995 Volume: 10
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri May 16 14:10:51 2003
Date: Fri, 16 May 2003 11:10:21 -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 Fri, 16 May 2003 Volume: 10 Number: 4995
Today's topics:
Memory problem <allanon@hotmail.com>
Re: Memory problem <ndronen@io.frii.com>
Re: Memory problem <ubl@schaffhausen.de>
Re: Memory problem <allanon@hotmail.com>
Re: multiple sorts on an array <bigj@kamelfreund.de>
Re: multiple sorts on an array <bigj@kamelfreund.de>
Re: my and dereferences <abigail@abigail.nl>
Re: NEWBIE match string in list <jurgenex@hotmail.com>
Re: NEWBIE match string in list <garry@ifr.zvolve.net>
Re: NEWBIE match string in list (John D)
Re: NEWBIE match string in list <tassilo.parseval@rwth-aachen.de>
Re: No data entering @array from open(DATA...) <dodger@dodger.org>
Re: novice programmer <erutiurf@web.de>
Re: parse response from system query - too many ways to <glex_nospam@qwest.net>
Re: Problem with flock <see.signature@for.email.address.invalid>
Re: Sorting $array[0] <garry@ifr.zvolve.net>
Re: starting an instance of browser with web forms fill (job)
strange behaviour of Tk::getOpenFile <scare.crow@oz.land>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Fri, 16 May 2003 15:14:59 +0100
From: "Allanon" <allanon@hotmail.com>
Subject: Memory problem
Message-Id: <ba2rp4$m1m@newton.cc.rl.ac.uk>
Hi
I've written a routine to loop through a month's worth of Listserv log files
to get some stats on files requested by email. It goes as follows:
foreach(@logdir)
{
($month = $_) =~ s/.*\/(\S+)$/$1/;
@logs = <$_/listserv*>;
foreach $l(@logs)
{
open(LOG,$l); @lines = <LOG>; close(LOG);
$curpos = 0; # counter used for checking next line after current line
foreach $line(@lines)
{
chomp $line;
# capture requests in the format ": get file extn listname"
if($line =~ /:\s+get\s+\S+\s+\S+\s+$listname$/i)
{
@temp = $line =~ /:\s+get\s+(\S+)\s+(\S+)\s+$listname$/i;
$filename = "$temp[0].$temp[1]"; $filename = lc($filename);
if($filename !~
/($listname\.list|refcard|memo|log\d+\w*|filelist)$/i)
{
if($lines[$curpos+1] =~ /mailed
file.*?$temp[0]/i){$filehash{$filename}{$month}++;}
}
}
# capture requests in the format ": get listname\filename"
elsif($line =~ /:\s+get\s+$listname\\\S+$/i)
{
@temp = $line =~ /:\s+get\s+$listname\\(\S+)$/i;
if($temp[0] !~
/($listname\.list|refcard|memo|log\d+\w*|filelist)$/i)
{
$filename = $temp[0]; $filename = lc($filename);
$temp[0] =~ s/\./ /; # listserv replaces dots with spaces between
file & extn
if($lines[$curpos+1] =~ /mailed
file.*?$temp[0]/i){$filehash{$filename}{$month}++;}
}
}
$curpos++;
}
}
}
Now, as you can see, I slurp each log file into an array @lines, and then
use a foreach loop to loop through the lines. I chose this method, over a
while loop since at one point I need to check the subsequent line to the
current line to make sure the requested file was successfully mailed.
The problem is that the script brings the server to it's knees after a few
minutes running. and if you can see the reason why if you watch task manager
(win2k) as the script runs. That is, it just uses up more and more memory
all the time until it's consuming several hundred MB of RAM and the servers
available resources get depleted.
So, why would this be happening? The only thing I can think of is the
reading of large log files (each one can be up to 40MB) into memory in the
@lines array, but I'm only opening one file at a time and using the same
array to load the file into, so I don't see why perl.exe would be taking up
more than about 40MB of memory.
As for other vars, %fileshash will not have more than about a couple of
dozen entries into it, so isn't likely to be more than a few KB.
Any ideas?
Allanon
------------------------------
Date: 16 May 2003 14:25:53 GMT
From: Nicholas Dronen <ndronen@io.frii.com>
Subject: Re: Memory problem
Message-Id: <3ec4f4f1$0$198$75868355@news.frii.net>
Allanon <allanon@hotmail.com> wrote:
A> Hi
A> I've written a routine to loop through a month's worth of Listserv log files
A> to get some stats on files requested by email. It goes as follows:
A> foreach(@logdir)
A> {
A> ($month = $_) =~ s/.*\/(\S+)$/$1/;
A> @logs = <$_/listserv*>;
A> foreach $l(@logs)
A> {
A> open(LOG,$l); @lines = <LOG>; close(LOG);
A> $curpos = 0; # counter used for checking next line after current line
A> foreach $line(@lines)
A> {
A> chomp $line;
A> # capture requests in the format ": get file extn listname"
A> if($line =~ /:\s+get\s+\S+\s+\S+\s+$listname$/i)
A> {
A> @temp = $line =~ /:\s+get\s+(\S+)\s+(\S+)\s+$listname$/i;
A> $filename = "$temp[0].$temp[1]"; $filename = lc($filename);
A> if($filename !~
A> /($listname\.list|refcard|memo|log\d+\w*|filelist)$/i)
A> {
A> if($lines[$curpos+1] =~ /mailed
A> file.*?$temp[0]/i){$filehash{$filename}{$month}++;}
A> }
A> }
A> # capture requests in the format ": get listname\filename"
A> elsif($line =~ /:\s+get\s+$listname\\\S+$/i)
A> {
A> @temp = $line =~ /:\s+get\s+$listname\\(\S+)$/i;
A> if($temp[0] !~
A> /($listname\.list|refcard|memo|log\d+\w*|filelist)$/i)
A> {
A> $filename = $temp[0]; $filename = lc($filename);
A> $temp[0] =~ s/\./ /; # listserv replaces dots with spaces between
A> file & extn
A> if($lines[$curpos+1] =~ /mailed
A> file.*?$temp[0]/i){$filehash{$filename}{$month}++;}
A> }
A> }
A> $curpos++;
A> }
A> }
A> }
A> Now, as you can see, I slurp each log file into an array @lines, and then
A> use a foreach loop to loop through the lines. I chose this method, over a
A> while loop since at one point I need to check the subsequent line to the
A> current line to make sure the requested file was successfully mailed.
Why not use:
while (<LOGFILE>) {
# do stuff
my $next_line = <LOGFILE> if $need_to_read_next_line;
}
Regards,
Nicholas
--
"Why shouldn't I top-post?" http://www.aglami.com/tpfaq.html
"Meanings are another story." http://www.ifas.org/wa/glossolalia.html
------------------------------
Date: Fri, 16 May 2003 16:43:17 +0200
From: Malte Ubl <ubl@schaffhausen.de>
Subject: Re: Memory problem
Message-Id: <ba30iu$esf$1@news.dtag.de>
Allanon wrote:
> Now, as you can see, I slurp each log file into an array @lines, and then
> use a foreach loop to loop through the lines. I chose this method, over a
> while loop since at one point I need to check the subsequent line to the
> current line to make sure the requested file was successfully mailed.
I'm not really good at reading code that doesn't use strict, it hurts my
brain, but I guess if all you need is a one line look ahead, you could
do that with a temp variable and a while loop. This would keep your
memory usage O(1) and thus eliminate your problem.
malte
------------------------------
Date: Fri, 16 May 2003 16:36:23 +0100
From: "Allanon" <allanon@hotmail.com>
Subject: Re: Memory problem
Message-Id: <ba30ho$vdu@newton.cc.rl.ac.uk>
I did an interesting test here. I removed all the actual line processing
code, and rigged the code so that @logs would only contain one log file, so
as to time how long perl takes to loop through every line of a single file.
It was coming up as 15 seconds using the while() loop method on a 547,000
line file of 39MB in size (It was taking 24 seconds with the routine I
detailed in my original post, so that's 9 seconds to deal with the
if()-elsif() block)
That's a lot of time for a whole month's worth of files, so, I thought I'd
just test to see how fast it would be going back to the foreach loop that
was bringing my server to its knees. Except that I didn't think it would do
that with only one log file... I was wrong. Here is the code:
foreach(@logdir)
{
@logs = <$_/LISTSERV-20030211*>;
foreach $l(@logs)
{
open(LOG,$l); @lines = <LOG>; close(LOG);
foreach $line(@lines)
{
}
}
}
I watched the memory usage for perl.exe shoot up to over 200MB and it was
still increasing before I killed it. So, why one earth does perl.exe require
that much memory just to slurp a 39MB file into an array?
Allanon
------------------------------
Date: Fri, 16 May 2003 13:01:07 +0200
From: "Janek Schleicher" <bigj@kamelfreund.de>
Subject: Re: multiple sorts on an array
Message-Id: <pan.2003.05.16.06.43.09.270458@kamelfreund.de>
Jahagirdar Vijayvithal S wrote at Fri, 16 May 2003 07:39:38 +0000:
> I was trying to interactively group the contents of an array based on
> pattern match and sort operation. for eg if the array is
> aabbcc
> aaefgh
> aaghe
> aafftr
> abbef
> abbec
> afgcc
> abcc
>
> the patterns given interactively by me would be something like
> first pattern \baa
> sort
> second pattern \ba.*bb
> sort
> third pattern \ba.*cc
> sort
> and the final expected result is
>
> aabbcc
> aaefgh
> aaghe
> aafftr
> abbef
> abbec
> aabbcc
> afgcc
> abcc
I have not looked at the code, as I don't understand your question.
Your given input is exactly the same as the given sorted output ?!
Could you please try to give us an unsorted array,
the sorted expected and that what you got, but didn't wanted.
Perhaps a longer explanation of the sorting would be also great,
as I have problems to understand what you mean with sorting 1st for
pattern 1, than for pattern 2 and than for pattern 3. Do you mean,
first all that matches pattern1, than all that matches pattern 2 and than
all matches pattern 3. But what is with the elements that doesn't match
any of these patterns, e.g.
Greetings,
Janek
------------------------------
Date: Fri, 16 May 2003 13:01:08 +0200
From: "Janek Schleicher" <bigj@kamelfreund.de>
Subject: Re: multiple sorts on an array
Message-Id: <pan.2003.05.16.06.40.08.922259@kamelfreund.de>
Jahagirdar Vijayvithal S wrote at Fri, 16 May 2003 07:39:38 +0000:
> I was trying to interactively group the contents of an array based on
> pattern match and sort operation. for eg if the array is
> aabbcc
> aaefgh
> aaghe
> aafftr
> abbef
> abbec
> afgcc
> abcc
>
> the patterns given interactively by me would be something like
> first pattern \baa
> sort
> second pattern \ba.*bb
> sort
> third pattern \ba.*cc
> sort
> and the final expected result is
>
> aabbcc
> aaefgh
> aaghe
> aafftr
> abbef
> abbec
> aabbcc
> afgcc
> abcc
I have not looked at the code, as I don't understand your question.
Your given input is exactly the same as the given sorted output ?!
Greetings,
Janek
------------------------------
Date: 16 May 2003 15:32:35 GMT
From: Abigail <abigail@abigail.nl>
Subject: Re: my and dereferences
Message-Id: <slrnbca14j.mth.abigail@alexandra.abigail.nl>
Jay Tilton (tiltonj@erols.com) wrote on MMMDXLV September MCMXCIII in
<URL:news:3ec49a46.255775682@news.erols.com>:
`' T.Postel@ieee.org (T. Postel) wrote:
`'
`' : Can someone explain this to me:
`' : @one = (0, 1);
`' : my @two = (4, 5);
`' : my $test1 = 'one';
`' : my $test2 = 'two';
`' :
`' : print "@$test1 \n@$test2\n$]";
`' :
`' : shows this:
`' : Name "main::one" used only once: possible typo at one.pl line 2.
`' : 0 1
`' :
`' : 5.00503
`'
`' What would you like explained?
`'
`' "@$test1" prints the contents of @one by using a symbolic reference.
`'
`' "@$test2" does not print the contents of @two because lexical
`' variables cannot be accessed through symbolic references.
Actually, it does print out the content of @two. Except it's not printing
out the content of the lexical @two, but the package @two, just like it's
printing the content of the package @one. It just happens that the package
@two happens to be empty.
Abigail
--
INIT {print "Perl " }
BEGIN {print "Just " }
CHECK {print "another "}
END {print "Hacker\n"}
------------------------------
Date: Fri, 16 May 2003 13:33:27 GMT
From: "Jürgen Exner" <jurgenex@hotmail.com>
Subject: Re: NEWBIE match string in list
Message-Id: <HM5xa.32835$Ur1.2883@nwrddc03.gnilink.net>
Jason Goodrow" <"goodrow wrote:
> I want to text match a string against a list
>
> if($var eq ("this" or "that" or "another")) {
> print "yes";
> }
>
> Which (of course) doesn't work.
Typical beginners mistake (which actually has little to do with Perl).
Check your condition. You are instructing perl to first evaluate the
expression
("this" or "that" or "another")
which it will dutifully do. The result is the boolean value TRUE(*).
And then you are comparing the text in $var with the boolean value TRUE. Not
a very meaningful comparision.
What you really want is comparing $var with each of those three values:
if(($var eq "this") or ($var eq "that") or ($var eq "another"))
(*)Actually this is a white lie: perl will evaluate the first 'or',
determine that the first argument evaluates to TRUE, thus the 'or' is true,
and it will return the actual text 'this'.
jue
------------------------------
Date: Fri, 16 May 2003 16:52:12 -0000
From: Garry Williams <garry@ifr.zvolve.net>
Subject: Re: NEWBIE match string in list
Message-Id: <slrnbca5pt.mt9.garry@zfw.zvolve.net>
On Fri, 16 May 2003 00:40:35 -0400, Jason Goodrow <goodrow@opencity>
wrote:
> I want to text match a string against a list
>
> if($var eq ("this" or "that" or "another")) {
> print "yes";
> }
>
> Which (of course) doesn't work.
> Thanks for any info
print 'yes' if grep $var eq $_, 'this', 'that', 'another';
--
Garry Williams
------------------------------
Date: 16 May 2003 10:10:32 -0700
From: johndageek@yahoo.com (John D)
Subject: Re: NEWBIE match string in list
Message-Id: <c608545f.0305160910.3596741a@posting.google.com>
Jason Goodrow <"goodrow"@opencity. com> wrote in message news:<ba1pev$60f$1@reader1.panix.com>...
> Hello and thanks,
>
> I want to text match a string against a list
>
> if($var eq ("this" or "that" or "another")) {
> print "yes";
> }
>
> Which (of course) doesn't work.
> Thanks for any info
>
> jg@open%asfh%city.com
Try
$string="hello this thing";
if ($string=~/this|that|other/) {print "yes";}
------------------------------
Date: 16 May 2003 17:40:33 GMT
From: "Tassilo v. Parseval" <tassilo.parseval@rwth-aachen.de>
Subject: Re: NEWBIE match string in list
Message-Id: <ba37qh$7q8$1@nets3.rz.RWTH-Aachen.DE>
Also sprach John D:
> Jason Goodrow <"goodrow"@opencity. com> wrote in message news:<ba1pev$60f$1@reader1.panix.com>...
>> Hello and thanks,
>>
>> I want to text match a string against a list
>>
>> if($var eq ("this" or "that" or "another")) {
>> print "yes";
>> }
>>
>> Which (of course) doesn't work.
>> Thanks for any info
>>
>> jg@open%asfh%city.com
>
> Try
> $string="hello this thing";
> if ($string=~/this|that|other/) {print "yes";}
You have to anchor each of the alternatives to get an exact match:
if ($string =~ /^this$|^that$|^other$/) ...
otherwise it would also match 'thatother'.
For variables with unknown content, regex meta characters should be
auto-escaped, too:
if ($string =~ /^\Q$first\E$|^\Q$sec\E$|.../) ...
Such patterns are best created automatically using map() and join() or
so.
Tassilo
--
$_=q#",}])!JAPH!qq(tsuJ[{@"tnirp}3..0}_$;//::niam/s~=)]3[))_$-3(rellac(=_$({
pam{rekcahbus})(rekcah{lrePbus})(lreP{rehtonabus})!JAPH!qq(rehtona{tsuJbus#;
$_=reverse,s+(?<=sub).+q#q!'"qq.\t$&."'!#+sexisexiixesixeseg;y~\n~~dddd;eval
------------------------------
Date: Fri, 16 May 2003 09:29:19 -0500
From: Dodger <dodger@dodger.org>
Subject: Re: No data entering @array from open(DATA...)
Message-Id: <Xns937D4C8459223dodgerdodgerorg@216.166.71.239>
On 16 May 2003, anno4000@lublin.zrz.tu-berlin.de (Anno Siegel) in
news:ba2f39$mi6$3@mamenchi.zrz.TU-Berlin.DE said something that resembled:
> Dodger <dodger@dodger.org> wrote in comp.lang.perl.misc:
>> On 13 May 2003, "Brad Walton" <sammie@greatergreen.com> in
>> news:oZhwa.837397$F1.105601@sccrnsc04 said something that resembled:
>> 1 while push @currplids, <CPDATA>;
>
> This won't work. Push returns the new length of the array, so
> the loop will never end.
>
> Anno
>
Oops, brain fart. You're right, my bad!
--
Dodger
------------------------------
Date: Fri, 16 May 2003 19:46:01 +0200
From: Richard Voss <erutiurf@web.de>
Subject: Re: novice programmer
Message-Id: <ba38ck$qq6$02$1@news.t-online.com>
nospam4me wrote:
> Anthony wrote:
>
>>My objective is to
>>rename a file named ABCDEFF.TXT to nnddmmyh.hmm
>>
>>nn= number 0-9
>>dd= day
>>mm= month
>>y=year
>>h.h=hour
>>mm= minutes
>>
>
> #!/bin/perl
> use strict;
> use warnings;
> use Time::Local;
that's not neccessary here.
> ## rename a file named ABCDEFF.TXT to nnddmmyh.hmm
> ## nn= number 0-9
> ## dd= day
> ## mm= month
> ## y= year
> ## h.h=hour
> ## mm= minutes
>
> my $num = 1;
> my $filename = "ABCDEFF.TXT";
> my $time = time();
some variables are really superfluous...
> my ($min, $hour, $day, $mon, $year) = (localtime($time))[1..5]; $mon++; $year+=1900;
my ($min, $hour, $day, $mon, $year) = (localtime time)[1..5];
$mon++; $year+=1900;
> $num = $num<10?"0$num":$num;
> $min = $min<10?"0$min":$min;
> my $h2 = $hour%10;
> my $h1 = ($hour - $hour%10)/10;
> $day = $day<10?"0$day":$day;
> $mon = $mon<10?"0$mon":$mon;
> $year = $year%1000;
>
> my $stamp = "${num}${day}${mon}${year}${h1}.${h2}${min}";
Do you know sprintf?
my $stamp = sprintf "%02d%02d%02d%1d%1d.%1d%02d",
$num, $day , $mon , $year % 1000 , $hour%10 , int($hour/10) , $min;
> # print("$stamp\n");
> rename($filename, $stamp) or die("RENAME: $!");
HTH
--
sub{use strict;local$@=sub{select($,,$,,$,,pop)};unshift@_,(45)x 24,split q=8==>
55.52.56.49.49.55.56.49.49.53;do{print map(chr,@_[0..(@_/2-1)]),"\r";$@->(1/6)=>
push@_=>shift}for@_,++$|}->(map{$_+=$_%2?-1:1}map ord,split//,'u!`onuids!Qdsm!'.
'i`bjds') #my email-address is reversed! <http://fruiture.de>
------------------------------
Date: Fri, 16 May 2003 10:34:08 -0500
From: "J. Gleixner" <glex_nospam@qwest.net>
Subject: Re: parse response from system query - too many ways to do it
Message-Id: <Vt7xa.21$1f2.28793@news.uswest.net>
Alan J. Flavell wrote:
> Reviewing the various scripts I've seen which need to issue a query to
> the system (a query which is expected to return a number of similar
> lines in reply) and parse the result, suggests that Perl has too many
> different ways to do it ;-)
>
> There's capturing the result from backticks and then iterating through
> the lines of the result; there's opening a pipe from the command and
> reading it as i/o; there's various different ways of handling the
> result with while, foreach, etc.
>
> What does the team think is the most Perl-ish way to handle this,
> please? (The result should be usable when taint checking is enabled.)
It depends on what you need to do. It's all covered in:
perldoc perlopentut
------------------------------
Date: Fri, 16 May 2003 16:51:59 +0000 (UTC)
From: "T Goddard" <see.signature@for.email.address.invalid>
Subject: Re: Problem with flock
Message-Id: <ba34vf$1b0$1@hercules.btinternet.com>
Thanks again for the advice, the file locking worked fine under NT today.
Tim.
--
My real e-mail address is ngroup1 before the at followed by
deskjockey.co.uk.
------------------------------
Date: Fri, 16 May 2003 16:55:55 -0000
From: Garry Williams <garry@ifr.zvolve.net>
Subject: Re: Sorting $array[0]
Message-Id: <slrnbca60s.mt9.garry@zfw.zvolve.net>
On 15 May 2003 13:51:19 -0700, nbh <leftshoe06@yahoo.com> wrote:
> Given
>
> @a1 = qw(17 abc);
> @a2 = qw(9 zya);
> @a3 = qw(44 asdff);
>
> $array[0] = \@a1;
> $array[1] = \@a2;
> $array[2] = \@a3;
>
> How to sort $array by the first element and maintain the connection
> with 17 to abc?
This is a FAQ.
perldoc -q sort
"How do I sort an array by (anything)?"
--
Garry Williams
------------------------------
Date: 16 May 2003 08:39:09 -0700
From: heeseboutin@yahoo.com (job)
Subject: Re: starting an instance of browser with web forms filled in
Message-Id: <49c6227e.0305160739.7d164d02@posting.google.com>
Thanks very much.
I think I will give both methods a try, but OLE seems to be the ideal solution.
------------------------------
Date: Fri, 16 May 2003 16:05:05 +0200
From: Eric Moors <scare.crow@oz.land>
Subject: strange behaviour of Tk::getOpenFile
Message-Id: <pan.2003.05.16.16.05.04.613889.26636@oz.land>
I have a weird problem when I use Tk::getOpenFile
It's possible to specify a initial directory where the file search
starts, but I cannot get this option to work correctly. A window pops up,
starting in the root directory of my machine. If I now press <cancel> and
press the button that executes getOpenFile() again, it is in the correct
directory, although the box(?) at the top still displays the wrong path
(just a plain /). (getSaveFile displays the same erroneous behaviour)
I'll include the code that shows this behaviour on my machine.
If anyone knows what's wrong, or knows a work-around, please let me know.
Eric
######### program start #############################
use strict;
use warnings;
use Tk;
my $mw = new MainWindow(-title => "a simple GUI");
rootWindow();
MainLoop;
sub rootWindow {
# first we create an input frame
my $in_frame = $mw->Frame;
my $in_label = $in_frame->Label(
-text => "Select an input file: ",
-anchor => 'e'
);
my $in_entry = $in_frame->Entry(
-width => 20
);
my $in_button = $in_frame->Button(
-text => "Browse ...",
-command => sub { fileDialog($in_entry) }
);
$in_label->pack(-side => 'left');
$in_entry->pack(-side => 'left',-expand => 'yes', -fill => 'x');
$in_button->pack(-side => 'left');
$in_frame->pack(-fill => 'x', -padx => '1c', -pady => 3);
}
sub fileDialog {
my $in_entry = shift;
my @types =
(["video files", [qw/.mpg .mpeg .avi/]],
["All files", '*']
);
my $file = $mw->getOpenFile(-initialdir => '/mnt/disc2/video',
-filetypes => \@types,
-initialdir => '/mnt/disc2/video',
-title => 'Select an input file');
if (defined $file and $file ne '') {
$in_entry->delete(0, 'end');
$in_entry->insert(0, $file);
$in_entry->xview('end');
}
}
__END__
######### program end #############################
------------------------------
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 4995
***************************************