[22381] in Perl-Users-Digest
Perl-Users Digest, Issue: 4602 Volume: 10
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Feb 21 18:06:00 2003
Date: Fri, 21 Feb 2003 15:05:09 -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 Fri, 21 Feb 2003 Volume: 10 Number: 4602
Today's topics:
Re: A regex to shorten up this command line <TruthXayer@yahoo.com>
Re: A regex to shorten up this command line (Anno Siegel)
Re: array of hash trouble (Morpheus)
Assigning filenames from variables (Win32 ActivePerl, N (SnappyDresser)
Re: Assigning filenames from variables (Win32 ActivePer (Anno Siegel)
Re: Assigning filenames from variables (Win32 ActivePer <perl-dvd@darklaser.com>
Re: Combining maps <goldbb2@earthlink.net>
Re: fork leaks memory in windows <goldbb2@earthlink.net>
Re: having PERL respond to a key press <tyrannous@o-space.com>
Re: having PERL respond to a key press <mgjv@tradingpost.com.au>
Re: How do I get the current date? (Anno Siegel)
Re: How do I get the current date? <goldbb2@earthlink.net>
How do I install a new module on a webserver? <geoff.news6@alphaworks.co.uk>
Re: Need Help with Pattern Matching <marc.beyer@gmx.li>
Re: pipe() + fork() + exit() == problem? <goldbb2@earthlink.net>
Re: Problem with buffering on non-blocking socket under <goldbb2@earthlink.net>
Re: Problem with buffering on non-blocking socket under <dodgynewsgroups@ewildgoose.demon.co.uk>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Fri, 21 Feb 2003 12:32:46 -0800
From: TruthXayer <TruthXayer@yahoo.com>
To: Peter Shankey <oxmard.Rules@ab.ab>
Subject: Re: A regex to shorten up this command line
Message-Id: <3E568CED.720438ED@yahoo.com>
Peter Shankey wrote:
> After I RTFM a bit I came up with this:
>
> perl -ne "if (/A_String/){$seen{$i}++;}END {print $seen{$i}}"
> load_customers.sql
>
> However is there a way to shorten this up a bit. Something like
using tr reduces a wee bit..and is much faster since we
don't need to store into a hash.
perl -ne '$ct =(tr/A_string//); END{print $ct;}'
load_customers.sql
------------------------------
Date: 21 Feb 2003 21:39:43 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: A regex to shorten up this command line
Message-Id: <b366av$g2f$1@mamenchi.zrz.TU-Berlin.DE>
TruthXayer <TruthXayer@yahoo.com> wrote in comp.lang.perl.misc:
>
>
> Peter Shankey wrote:
> > After I RTFM a bit I came up with this:
> >
> > perl -ne "if (/A_String/){$seen{$i}++;}END {print $seen{$i}}"
> > load_customers.sql
> >
> > However is there a way to shorten this up a bit. Something like
>
> using tr reduces a wee bit..and is much faster since we
> don't need to store into a hash.
Nothing must be stored in a hash, whether tr/// is used or not. And
what makes you think avoidance of a hash will make it "much faster"?
> perl -ne '$ct =(tr/A_string//); END{print $ct;}'
> load_customers.sql
This is nonsense. Have you tried it? Remember, it's supposed to
count the lines with "A_String" in them.
Anno
--
perl -e'$_=shift().".pm";s|::|/|g;require;exec"view",$INC{ $_}' File::Find
------------------------------
Date: 21 Feb 2003 14:40:53 -0800
From: daddyefsacks@yahoo.com (Morpheus)
Subject: Re: array of hash trouble
Message-Id: <cd7c20b3.0302211440.150df0ac@posting.google.com>
Wow, thank you all so much for your help! Using your information I
was able to get my program running much faster and learn so much in
the process! Thank you everybody who took the time to reply, you made
my life much easier :)
------------------------------
Date: 21 Feb 2003 11:32:16 -0800
From: thesnappydresser@yahoo.com (SnappyDresser)
Subject: Assigning filenames from variables (Win32 ActivePerl, Novice)
Message-Id: <382cf033.0302211132.7240e494@posting.google.com>
Hi, I'm converting a pipe-delimited file to a series of HTML files.
Each record will be used to create a separate file. The filenames are
based on the variable "$term" in the each record. I've made sure the
variable was valid, but Perl acts like it ignores it. Here's the
code:
$termFilename = $term;
$termFilename =~ tr/ /_/;
open( OUT1, ">$termFilename" );
If I hardcode the file name like below, a file is produced as
expected.
$termFilename = $term;
$termFilename =~ tr/ /_/;
open( OUT1, ">wowsah.txt" );
I've looked through my books, Google, and the ActivePerl docs, but
I've obviously missed something. Any thoughts or suggestions are
appreciated!
Stan
------------------------------
Date: 21 Feb 2003 19:59:46 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: Assigning filenames from variables (Win32 ActivePerl, Novice)
Message-Id: <b360fi$di6$1@mamenchi.zrz.TU-Berlin.DE>
SnappyDresser <thesnappydresser@yahoo.com> wrote in comp.lang.perl.misc:
> Hi, I'm converting a pipe-delimited file to a series of HTML files.
> Each record will be used to create a separate file. The filenames are
> based on the variable "$term" in the each record. I've made sure the
> variable was valid, but Perl acts like it ignores it. Here's the
> code:
You mean, it ignores the open() statement, not the variable. Most
probably the open() fails for some reason.
> $termFilename = $term;
> $termFilename =~ tr/ /_/;
> open( OUT1, ">$termFilename" );
Always check the result of open(), especially when you see unexpected
results.
open( OUT1, ">$termFilename" ) or die "Can't create $termFilename: $!";
When you do that, the content of $! will tell you why the open() failed.
Anno
------------------------------
Date: Fri, 21 Feb 2003 20:21:17 GMT
From: "David" <perl-dvd@darklaser.com>
Subject: Re: Assigning filenames from variables (Win32 ActivePerl, Novice)
Message-Id: <1Tv5a.72$F6.13877@news-west.eli.net>
"SnappyDresser" <thesnappydresser@yahoo.com> wrote in message
news:382cf033.0302211132.7240e494@posting.google.com...
> Hi, I'm converting a pipe-delimited file to a series of HTML files.
> Each record will be used to create a separate file. The filenames are
> based on the variable "$term" in the each record. I've made sure the
> variable was valid, but Perl acts like it ignores it. Here's the
> code:
>
> $termFilename = $term;
> $termFilename =~ tr/ /_/;
> open( OUT1, ">$termFilename" );
>
> If I hardcode the file name like below, a file is produced as
> expected.
>
> $termFilename = $term;
> $termFilename =~ tr/ /_/;
> open( OUT1, ">wowsah.txt" );
>
> I've looked through my books, Google, and the ActivePerl docs, but
> I've obviously missed something. Any thoughts or suggestions are
> appreciated!
No, looks like it should work. Try this:
$term = "wowsah.txt";
$termFilename = $term;
$termFilename =~ tr/ /_/;
open( OUT1, ">$termFilename" );
If that works, you know there is something wrong with the value of $term
before we get to the $termFilename assignment.
By the way, I would make the recommendation to include the full path to
where you want to write your file. For example:
# yes with perl you can use / even on windows
open( OUT1, ">C:/tmp/$termFilename" );
Regards,
David
------------------------------
Date: Fri, 21 Feb 2003 16:04:10 -0500
From: Benjamin Goldberg <goldbb2@earthlink.net>
Subject: Re: Combining maps
Message-Id: <3E56944A.C50A41D7@earthlink.net>
Neil Shadrach wrote:
>
> Looking for a neat way to combine the two maps.
> When I try get additional "[.txt]" lines in the output.
Looking at your code, the fault is not in how you're using map, but in
the regex. Change /^(?![#\s])(.+)$/ to /^(?![#\s])(.*)$/, and your
problem should be fixed.
--
$;=qq qJ,krleahciPhueerarsintoitq;sub __{0 &&
my$__;s ee substr$;,$,&&++$__%$,--,1,qq;;;ee;
$__>2&&&__}$,=22+$;=~y yiy y;__ while$;;print
------------------------------
Date: Fri, 21 Feb 2003 15:23:49 -0500
From: Benjamin Goldberg <goldbb2@earthlink.net>
Subject: Re: fork leaks memory in windows
Message-Id: <3E568AD5.A600304C@earthlink.net>
glen wrote:
>
> Why the most basic implementation of fork is leaking memory in every
> loop?
> It leaks 10~20K on every iteration both on AS 5.6.1 and 5.8.0.
In windows, when you fork(), it creates a new ithread; that is, it
creates a clone of the current interpreter, and a new thread to run that
clone.
Apparently, there's a bug which causes the completion of the thread to
not completely free up all the memory used for the ithread.
> Am I missing something or fork() is just useless in Windows?
Even if it's slightly flawed, fork() is most definitely not useless --
it's still the most convenient way of having parallel execution of code,
with some things happening in one thread, and some in another thread.
--
$;=qq qJ,krleahciPhueerarsintoitq;sub __{0 &&
my$__;s ee substr$;,$,&&++$__%$,--,1,qq;;;ee;
$__>2&&&__}$,=22+$;=~y yiy y;__ while$;;print
------------------------------
Date: Fri, 21 Feb 2003 20:50:55 -0000
From: <tyrannous@o-space.com>
Subject: Re: having PERL respond to a key press
Message-Id: <b363e3$b40$1@news8.svr.pol.co.uk>
yes i tried it
i tried the following:
#!c:\perl\bin\perl.exe
use Term::ReadKey;
blah blah
says cannot find Term::ReadKey in @INC or something like that
"David K. Wall" <usenet@dwall.fastmail.fm> wrote in message
news:Xns93297361F58ACdkwwashere@216.168.3.30...
> [TOFU rearranged; please don't top-post. And please don't quote
> signatures.]
>
> <tyrannous@o-space.com> wrote on 21 Feb 2003:
> > "Helgi Briem" <helgi@decode.is> wrote in message
> > news:3e5623bb.1214086494@news.cis.dfn.de...
> >> On Thu, 20 Feb 2003 21:14:18 -0000, <tyrannous@o-space.com>
> >> wrote:
> >>
> >> >I want to have perl exit from a WHILE loop when the user
> >> >presses a certain key on the keyboard
> >>
> >> Why are you re-posting this question?
> >>
> >> Were you not satisfied with the answers you got last time?
> >>
> >> If not, what was your problem with them?
>
> > none of the ideas worked.
> >
> > is there any simple way to do this?
>
> Since you're posting with LookOut, it looks like you're using
> Windows. The suggestion in the FAQ (Term::ReadKey) works fine for me
> with Windows 2000. Did you try it?
>
> --
> David K. Wall - usenet@dwall.fastmail.fm
> "Oook."
------------------------------
Date: Sat, 22 Feb 2003 08:55:32 +1100
From: Martien Verbruggen <mgjv@tradingpost.com.au>
Subject: Re: having PERL respond to a key press
Message-Id: <slrnb5d82k.2fm.mgjv@martien.heliotrope.home>
[Please in the future, put your reply _after_ the suitably trimmed text
you reply to. It is the commonly accepted quoting style on this
newsgroup, and Usenet in general]
You have been asked before, please, READ what people post.
On Fri, 21 Feb 2003 20:50:55 -0000,
<tyrannous@o-space.com> <tyrannous@o-space.com> wrote:
> "David K. Wall" <usenet@dwall.fastmail.fm> wrote in message
> news:Xns93297361F58ACdkwwashere@216.168.3.30...
>> [TOFU rearranged; please don't top-post. And please don't quote
>> signatures.]
See?
>> <tyrannous@o-space.com> wrote on 21 Feb 2003:
[large snip]
>> > is there any simple way to do this?
>>
>> Since you're posting with LookOut, it looks like you're using
>> Windows. The suggestion in the FAQ (Term::ReadKey) works fine for me
>> with Windows 2000. Did you try it?
> yes i tried it
> i tried the following:
>
> #!c:\perl\bin\perl.exe
>
> use Term::ReadKey;
>
> blah blah
>
> says cannot find Term::ReadKey in @INC or something like that
Never post "something like that" error messages to this newsgroup. Copy
and paste. You are the one that needs help. Please try to be helpful
when asking for help. Please, read the posting guidelines that are
posted here regularly, because you are violating several of them.
Then install Term::ReadKey. If you use ActiveState Perl, use their ppm
tool. Otherwise get the module from CPAN (www.cpan.org), and install
it, or use the CPAN module to do it. I think that for Term::ReadKey you
need to have a compiler available.
Martien
--
|
Martien Verbruggen |
| What's another word for Thesaurus?
|
------------------------------
Date: 21 Feb 2003 19:46:46 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: How do I get the current date?
Message-Id: <b35vn6$jvt$4@mamenchi.zrz.TU-Berlin.DE>
Steffen Beyer <Steffen.Beyer@de.bosch.com> wrote in comp.lang.perl.misc:
> > {} > > I want to write a script that zip up files, and names the archive
> > {} > > file-month-day-year.zip
> > {} > > How do I get the current date in a perl script?
>
> > {} my @now = localtime();
> > {} $now[4]++;
> > {} $now[5] += 1900;
> > {} my $file = sprintf("file-%04d%02d%02d.zip", @now[5,4,3]);
>
> > Well, that would do year, month, day, wouldn't it?
>
> Correct. :-)
> This is because I also second the second poster's suggestion
> to use a sortable format (i.e. year-month-day) instead of
> month-day-year.
>
> > The request was about month, day, year.
>
> It should be obvious from the suggested solution that you can
> easily achieve any order you like by shifting the numbers 5,4,3
> around... :-)
...or even, as we recently learned:
my $file = sprintf("file-%3\$02d%2\$02d%1\$04d.zip", @now[5,4,3]);
Anno
------------------------------
Date: Fri, 21 Feb 2003 15:35:10 -0500
From: Benjamin Goldberg <goldbb2@earthlink.net>
Subject: Re: How do I get the current date?
Message-Id: <3E568D7E.FC62CD69@earthlink.net>
Steffen Beyer wrote:
> Helgi Briem wrote:
> > Steffen Beyer wrote:
> > >Without the penalty for loading an additional module,
> > >how about this:
> >
> > Please, please don't spread misinformation about
> > the "penalty for loading an additional module".
> >
> > If the nanoseconds/kilobytes penalty of loading
> > a module is actually important to you, you shouldn't
> > be programming in Perl.
>
> I agree in principle, but I have reason to disagree in particular.
> I have seen CGI applications which used so many modules that
> they really slowed down considerably. So there are cases in
> which it makes sense to avoid loading modules.
If the nanoseconds/kilobytes penalty of loading
a module is actually important to you, you shouldn't
be using the Common Gateway Interface for providing
web content, and should be using one of mod_perl,
mod_fastcgi, or mod_(speedycgi|persistantperl) instead.
> But in general, it is of course a good idea not to re-invent
> the wheel and to use modules wherever possible.
>
> I'm the last to object because I'm a module author myself. :-)
--
$;=qq qJ,krleahciPhueerarsintoitq;sub __{0 &&
my$__;s ee substr$;,$,&&++$__%$,--,1,qq;;;ee;
$__>2&&&__}$,=22+$;=~y yiy y;__ while$;;print
------------------------------
Date: Fri, 21 Feb 2003 22:19:45 -0000
From: "Geoff Soper" <geoff.news6@alphaworks.co.uk>
Subject: How do I install a new module on a webserver?
Message-Id: <3e56a603$0$369$cc9e4d1f@news.dial.pipex.com>
I have limited access to a webserver, i.e. I have access to the cgi-bin
directory. A program I am writing needs to use Digest::MD5 which isn't
currently provided. Can I install this myself with only limited access?
MAny thanks
------------------------------
Date: Fri, 21 Feb 2003 21:05:09 +0000
From: Marc <marc.beyer@gmx.li>
Subject: Re: Need Help with Pattern Matching
Message-Id: <b3647g$1je8l0$1@ID-123680.news.dfncis.de>
Mikey wrote:
> I'm getting a lot of:
> Use of uninitialised variable in numeric comparison.....
I would suspect that some of your data is fomratted subtly different from
the sample you posted, therefore the regex doesn't match and sort isn't
getting anything to compare. You will have to check the data for that, I'll
spell out the regex to make it easier (doing the second one since that is
most likely what you want):
m/
[0-9.]* # 0 or more characters which
# are either numbers or a dot (.)
\s # a single whitespace character
\d* # 0 or more digits
\s # a single whitespace
[a-zA-Z ]* # 0 or more characters which are either alphanumerics
# (uppercase or lowercase) or a space (matches
# the first and possible middle name)
\s # a single whitespace
\w* # 0 or more alphanumerics (matches
# the last name)
\s # a single whitespace
( # captures the following into a variable
\d # a single digit
) # end of first capture
\. # a dot
( # captures the following into a second variable
\d+ # 1 or more digits
) # end of second capture
/
One possibility for a subtle bug would be a tab instead of a space character
between first and middle name (which will not match because [a-zA-Z ] only
takes letters or the space character).
You could also try the following more general expression:
($aa,$ab)= $a =~ m/(\d)\.(\d+)$/;
($ba,$bb)= $b =~ m/(\d)\.(\d+)$/;
$aa==$ba ? $ab <=> $bb : $aa <=> $ba;
This will simply match a numeral, followed by a dot, followed by one or more
numerals at the end of the matched string. This will not help you with the
solution I proposed for splitting the string into an array, but maybe you
can work backwards from there to see which part of your data doesn't match
,just add bits from the full regex to the beginning of the simplified one
until you get the uninitialized variable error, then you know which part of
the data is causing trouble.
Good luck,
Marc
------------------------------
Date: Fri, 21 Feb 2003 15:53:23 -0500
From: Benjamin Goldberg <goldbb2@earthlink.net>
Subject: Re: pipe() + fork() + exit() == problem?
Message-Id: <3E5691C3.C4574A56@earthlink.net>
Gordan wrote:
>
> Benjamin Goldberg wrote:
[snip]
> >> Sometimes the output queue is filled slower than the processing
> >> speed, so threads can decide to sleep() for a while and re-try a
> >> few times before deciding that the load is low enough that they are
> >> no longer useful.
> >
> > HUH? Are you doing something funky like making your pipes
> > nonblocking?
>
> Effectively, I'm doing something like this:
>
> while (1)
> {
> flock($Pipe, LOCK_EX);
> if (-s $Pipe)
> {
> $Job = DeQueue($Pipe);
> Process($Job);
> }
> else
> {
> sleep(5);
> }
> flock($Pipe, LOCK_UN);
> }
Change this to code like:
for( 1 ... $num_jobs_to_process ) {
flock($Pipe, LOCK_EX);
$Job = DeQueue($Pipe);
flock($Pipe, LOCK_UN);
Process($Job);
}
You shouldn't be processing the job while holding onto the lock -- if
you do that, you don't get any parallelism, which is half the purpose
having a parent process/worker processes (you still get the other half,
which is avoiding memory leaks, though).
Also, it's a simpler, programmatically, to say "process $x jobs" than
"process jobs for $x amount of time." Not to mention, the amount of
memory leaking is probably dependent upon the number of jobs processed,
rather than for the number of seconds the worker has been alive.
> > You should *never* need to sleep() until a job is ready -- simply
> > try reading from the pipe, and if you haven't made the pipe
> > nonblocking, it will *automaticaly* go to sleep until something is
> > available.
>
> Hmm... I might play with that in a bit. It seems like a sensible way
> to do it. At the moment, I just have an array mapped into a shared
> memory segment that keeps track of status of each thread. If all the
> jobs are done, thenthe pipe may never get filled. So, I guess I could
> check for an EOF, and make the queue process the first one to exit. It
> would save a bit on overhead. Thanks, I think I'll do that. :-)
I don't see the need for a shared memory segment -- it would be more
portable to have a second pipe, from the child processes to the parent
process, for indicating status/changes in status. When the status of a
worker process changes, it would lock the to_parent pipe, write it's pid
and it's new status to the pipe, then unlock the pipe.
--
$;=qq qJ,krleahciPhueerarsintoitq;sub __{0 &&
my$__;s ee substr$;,$,&&++$__%$,--,1,qq;;;ee;
$__>2&&&__}$,=22+$;=~y yiy y;__ while$;;print
------------------------------
Date: Fri, 21 Feb 2003 16:01:14 -0500
From: Benjamin Goldberg <goldbb2@earthlink.net>
Subject: Re: Problem with buffering on non-blocking socket under win32
Message-Id: <3E56939A.DF6A2058@earthlink.net>
Ed W wrote:
>
> Thanks for this thought, however, thats EXACTLY the problem. I am
> using a select loop to read and write to a pair of sockets.
Are you really selecting for both readability and writability (and using
syswrite to send data, and substr() to remove however much you've
written), or are you just selecting for readability, and using print()
to send the data?
> The app is a POP3 proxy, and so I am listening to a mail client on
> localhost and speaking to a mail server over a 300 byte/sec link on
> the other socket.
> The point is not to read too much from the mail client socket
> because it will take ages to write out to the slow remote socket (with
> possible timeouts on the mail client in the meantime)
If you use syswrite(), not print, to send data to the slow remote
socket, then writing data should *never* *ever* block if select has
indicated that that socket is writable.
> I am looking for the neatest way to fill up the send socket over the
> slow link, and the best algorithm I have so far is perhaps to write in
> 1kb chunks, checking "can_write" each time.
The check for whether the send socket is writable should not need a
seperate 'can_write' check -- it should be done as part of the main
select() loop. In the code at the url I posted, this is how writing is
done.
--
$;=qq qJ,krleahciPhueerarsintoitq;sub __{0 &&
my$__;s ee substr$;,$,&&++$__%$,--,1,qq;;;ee;
$__>2&&&__}$,=22+$;=~y yiy y;__ while$;;print
------------------------------
Date: Fri, 21 Feb 2003 22:14:06 GMT
From: "Ed W" <dodgynewsgroups@ewildgoose.demon.co.uk>
Subject: Re: Problem with buffering on non-blocking socket under win32
Message-Id: <Owx5a.4727380$6N5.630929@post-03.news.easynews.com>
"Benjamin Goldberg" <goldbb2@earthlink.net> wrote in message
news:3E56939A.DF6A2058@earthlink.net...
> Ed W wrote:
> >
> > Thanks for this thought, however, thats EXACTLY the problem. I am
> > using a select loop to read and write to a pair of sockets.
>
> Are you really selecting for both readability and writability (and using
> syswrite to send data, and substr() to remove however much you've
> written), or are you just selecting for readability, and using print()
> to send the data?
Nope. I think we are talking cross purposes. See my last email. Something
is broken under win32. If I use syswrite with 100MB (really!), it doesn't
block, returns control immediately, but also, the substr never gets called,
ie the whole darn lot gets written somewhere!
This is definitely not desirable I think...
> > The app is a POP3 proxy, and so I am listening to a mail client on
> > localhost and speaking to a mail server over a 300 byte/sec link on
> > the other socket.
>
> > The point is not to read too much from the mail client socket
> > because it will take ages to write out to the slow remote socket (with
> > possible timeouts on the mail client in the meantime)
>
> If you use syswrite(), not print, to send data to the slow remote
> socket, then writing data should *never* *ever* block if select has
> indicated that that socket is writable.
This is true, it *doesn't* block. However, if the client sends even a small
20Kb email, then clearly the read socket will read all of this in almost
immediately. However, the write socket will take 20,000 / 300 = 66 secs to
write the data back out. 60 secs is about normal for timeouts on Outlook
(and seems like a good number to me). Imagine sending a 200Kb email...
So the point is that the client will timeout before receving any response or
indication that anything is happening. The trick is only to read what I can
send in the next few secs, that way the email client stays interested
because it gets to write from time to time. Is this clear?
Thanks for your help. Really appreciated
(FWIW: I tried under perl 5.8 on Win32 and the same strange effect seems to
be happening. I guess I will just need to keep writing to the socket a
little at a time and just stop when can_write returns false - there doesn't
seem to be any other way to determine when the OS buffer is full - syswrite
ALWAYS accepts the data...)
------------------------------
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 4602
***************************************