[28845] in Perl-Users-Digest
Perl-Users Digest, Issue: 89 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Tue Jan 30 21:07:44 2007
Date: Tue, 30 Jan 2007 18:05:04 -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 Tue, 30 Jan 2007 Volume: 11 Number: 89
Today's topics:
Re: Downloading lots and lots and lots of files <coolneo@yahoo.com>
Re: how to flush a file <jgibson@mail.arc.nasa.gov>
Re: Max size of an array used in perl. <greg.ferguson@icrossing.com>
Re: Max size of an array used in perl. <joe@inwap.com>
Regex repeating capture <JaythePCguy@gmail.com>
Re: Regex repeating capture <jgibson@mail.arc.nasa.gov>
Re: Regex repeating capture <mritty@gmail.com>
Re: Regex repeating capture <wahab-mail@gmx.de>
Re: Regex repeating capture <null@no_spam.com>
Re: Shared memory location anno4000@radom.zrz.tu-berlin.de
Re: sprintf or pack <wahab-mail@gmx.de>
Re: Statistics Extraction <emschwar@pobox.com>
Re: subpattern reference using vaiable subpattern index anno4000@radom.zrz.tu-berlin.de
Re: Tar on Windows XP <david@cs.cf.ac.uk>
Win32::OLE version conflict problem...please help josh.dewinter@gmail.com
Re: Win32::OLE version conflict problem...please help <cgrady357@gmail.com>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 30 Jan 2007 06:34:55 -0800
From: "coolneo" <coolneo@yahoo.com>
Subject: Re: Downloading lots and lots and lots of files
Message-Id: <1170167695.165918.182610@l53g2000cwa.googlegroups.com>
Thanks everyone. I'm going to give LWP:Parallel a closer look. That
looks like it will do what I want. Thanks for the advice on queuing
the downloads. That makes perfect sense.
------------------------------
Date: Tue, 30 Jan 2007 16:58:45 -0800
From: Jim Gibson <jgibson@mail.arc.nasa.gov>
Subject: Re: how to flush a file
Message-Id: <300120071658451048%jgibson@mail.arc.nasa.gov>
In article <epmo9u$kfg$1@news.su.se>, Bo Lindbergh
<blgl@stacken.kth.se> wrote:
> In article <290120071540480925%jgibson@mail.arc.nasa.gov>,
> Jim Gibson <jgibson@mail.arc.nasa.gov> wrote:
> > But nowhere in the documentation does it say that setting auto-flush
> > mode for a filehandle results in an immediate flush of that filehandle.
>
> But perldoc perlvar says:
> > $| If set to nonzero, forces a flush right away and after every
> > write or print on the currently selected output channel.
>
> What part of that sentence is unclear?
That description is quite clear, but I didn't see it before. I was
looking at 'perldoc -q flush' and the Camel book.
Thanks for the clarification.
Posted Via Usenet.com Premium Usenet Newsgroup Services
----------------------------------------------------------
** SPEED ** RETENTION ** COMPLETION ** ANONYMITY **
----------------------------------------------------------
http://www.usenet.com
------------------------------
Date: 30 Jan 2007 07:18:56 -0800
From: "gf" <greg.ferguson@icrossing.com>
Subject: Re: Max size of an array used in perl.
Message-Id: <1170170336.805761.185550@v33g2000cwv.googlegroups.com>
On Jan 30, 6:47 am, "Paul Lalli" <mri...@gmail.com> wrote:
> There is no built-in limit in the language. It is limited only by the
> amount of memory your computer system has available.
And how willing you are to let your machine go to a crawl if you
exceed the available physical RAM.
Oses these days aren't limited by RAM. They'll allocate disk as swap
space, which frees RAM to hold more, which then gives Perl the go-
ahead to load more data, which then gets swapped back out to disk.
Disk is slower than RAM so the machine will go to a crawl.
And, unfortunately, there are some things that are easy to do in Perl
that can put you in that situation, like slurping big data files
without checking to see how big they are first or trying to hold huge
structures in memory instead of reverting to using a database.
Back to the original poster's question -
Knowing that Perl will create an array big enough to fill memory
should prompt more specific questions, like "how many array entries
can I effectively access if they are of type X?", and "Is there a
better way to store and access data type Y?" and let us know what
you're going to store or access or try to do with it.
"How big" is too generic and leads to generic answers that don't
really help you.
------------------------------
Date: Tue, 30 Jan 2007 13:21:43 -0800
From: Joe Smith <joe@inwap.com>
Subject: Re: Max size of an array used in perl.
Message-Id: <g4qdnR45hfxxKyLYnZ2dnUVZ_uyknZ2d@comcast.com>
rajendra wrote:
> Hello All,
> I would like to know the max size that an array can store in terms of bytes.
As much as your memory system allows.
WinXP% uname -a
CYGWIN_NT-5.1 wiggin 1.5.23(0.156/4/2) 2006-12-19 10:52 i686 Cygwin
WinXP% perl -le '$,=$a=",";for(;;){print time()-$^T,$b++, length $a; $a.=$a}'
0,0,1
0,1,2
0,2,4
0,3,8
0,4,16
0,5,32
0,6,64
0,7,128
0,8,256
0,9,512
0,10,1024
0,11,2048
0,12,4096
0,13,8192
0,14,16384
0,15,32768
0,16,65536
0,17,131072
0,18,262144
0,19,524288
0,20,1048576
0,21,2097152
0,22,4194304
0,23,8388608
0,24,16777216
0,25,33554432
1,26,67108864
1,27,134217728
1,28,268435456
2,29,536870912
Out of memory!
There it took 2 seconds to go from 256M to 512M
On an 800 MHz P-III with 256M RAM:
0,25,33554432
0,26,67108864
1,27,134217728
2,28,268435456
21,29,536870912
155,30,1073741824
panic: realloc at -e line 1.
That is 21 seconds to double after exceeding physical memory and
155 seconds to double after that. After 1GB, it used up all the
available swap space on that poor little machine.
I haven't tried that test on a 16GB machine where perl is compiled with use64bitall.
-Joe
------------------------------
Date: 30 Jan 2007 09:13:34 -0800
From: "Jay" <JaythePCguy@gmail.com>
Subject: Regex repeating capture
Message-Id: <1170177214.014726.69240@k78g2000cwa.googlegroups.com>
Howdy,
I'm trying to break an input string into multpile pieces using a
series of delimiters that start with an asterisk. Following the
asterisk is a mulitple character identifier immediately followed by a
data string of variable length. The input string may contain more than
one identifier anywhere in the string. In all, there are 50+
identifiers to search for and the asterisk is allowed to part of the
data string as long as it isn't defined as an identifier (it would be
treated as another identifier at that point).
Here is a simple example:
*CZ1 2.3 4-56 *fuuuS24364 08 23 72
I'd like to break this into
CZ
1 2.3 4-56
fuuu
S24364 08 23 72
I have tried the pattern (?:\*(CZ|fuuu)(.*)), which produces the
following ouput:
CZ
1 2.3 4-56 *fuuuS24364 08 23 72
How can I force it to repeat the capturing?
Thanks,
Jay
------------------------------
Date: Tue, 30 Jan 2007 09:43:30 -0800
From: Jim Gibson <jgibson@mail.arc.nasa.gov>
Subject: Re: Regex repeating capture
Message-Id: <300120070943303357%jgibson@mail.arc.nasa.gov>
In article <1170177214.014726.69240@k78g2000cwa.googlegroups.com>, Jay
<JaythePCguy@gmail.com> wrote:
> Howdy,
>
> I'm trying to break an input string into multpile pieces using a
> series of delimiters that start with an asterisk. Following the
> asterisk is a mulitple character identifier immediately followed by a
> data string of variable length. The input string may contain more than
> one identifier anywhere in the string. In all, there are 50+
> identifiers to search for and the asterisk is allowed to part of the
> data string as long as it isn't defined as an identifier (it would be
> treated as another identifier at that point).
>
> Here is a simple example:
> *CZ1 2.3 4-56 *fuuuS24364 08 23 72
>
> I'd like to break this into
> CZ
> 1 2.3 4-56
> fuuu
> S24364 08 23 72
>
> I have tried the pattern (?:\*(CZ|fuuu)(.*)), which produces the
> following ouput:
> CZ
> 1 2.3 4-56 *fuuuS24364 08 23 72
>
> How can I force it to repeat the capturing?
Use split and capture the delimiters:
$x = "*CZ1 2.3 4-56 *fuuuS24364 08 23 72";
@f = split( /(\*(?:CZ|fuuu))/, $x);
print join("\n",@f),"\n";
*CZ
1 2.3 4-56
*fuuu
S24364 08 23 72
See perldoc -f split
Posted Via Usenet.com Premium Usenet Newsgroup Services
----------------------------------------------------------
** SPEED ** RETENTION ** COMPLETION ** ANONYMITY **
----------------------------------------------------------
http://www.usenet.com
------------------------------
Date: 30 Jan 2007 09:50:19 -0800
From: "Paul Lalli" <mritty@gmail.com>
Subject: Re: Regex repeating capture
Message-Id: <1170179418.011844.263770@q2g2000cwa.googlegroups.com>
On Jan 30, 12:13 pm, "Jay" <JaythePC...@gmail.com> wrote:
> I'm trying to break an input string into multpile pieces using a
> series of delimiters that start with an asterisk. Following the
> asterisk is a mulitple character identifier immediately followed by a
> data string of variable length. The input string may contain more than
> one identifier anywhere in the string. In all, there are 50+
> identifiers to search for and the asterisk is allowed to part of the
> data string as long as it isn't defined as an identifier (it would be
> treated as another identifier at that point).
>
> Here is a simple example:
> *CZ1 2.3 4-56 *fuuuS24364 08 23 72
>
> I'd like to break this into
> CZ
> 1 2.3 4-56
> fuuu
> S24364 08 23 72
So CZ and fuuu are your delimiters, but only if preceded by an
asterisk, and you want those delimiters to also be in your results?
> I have tried the pattern (?:\*(CZ|fuuu)(.*)),
What does that mean? How did you try it? In a list-context pattern
match? In a split? In a scalar-context pattern match with the /g
option? Please show your actual code, not a tiny piece of it.
> which produces the
> following ouput:
> CZ
> 1 2.3 4-56 *fuuuS24364 08 23 72
>
> How can I force it to repeat the capturing?
Without knowing what you actually did, there's no way to tell you how
to modify it. I will say that the following seems to produce the
results you were looking for, for the data you gave:
perl -le'
my @fields = split /(\*(?:CZ|fuuu))/, q{*CZ1 2.3 4-56 *fuuuS24364 08
23 72};
s/^\*// for @fields;
print for grep { length } @fields;
'
CZ
1 2.3 4-56
fuuu
S24364 08 23 72
perldoc -f split
perldoc -f grep
perldoc perlretut
Paul Lalli
------------------------------
Date: Tue, 30 Jan 2007 18:59:37 +0100
From: Mirco Wahab <wahab-mail@gmx.de>
Subject: Re: Regex repeating capture
Message-Id: <epo927$h37$1@mlucom4.urz.uni-halle.de>
Jay wrote:
> I'm trying to break an input string into multpile pieces using a
> series of delimiters that start with an asterisk. Following the
> asterisk is a mulitple character identifier immediately followed by a
> data string of variable length.
> Here is a simple example:
> *CZ1 2.3 4-56 *fuuuS24364 08 23 72
> I'd like to break this into
> CZ
> 1 2.3 4-56
> fuuu
> S24364 08 23 72
>
> I have tried the pattern (?:\*(CZ|fuuu)(.*)), which produces the
> following ouput:
> CZ
> 1 2.3 4-56 *fuuuS24364 08 23 72
> How can I force it to repeat the capturing?
You can force the repeated capturing by the /g flag
on the regex.
Your complete solution should look, if I
guessed correct from your riddle, sth. like:
...
my $simple = q{*CZ1 2.3 4-56 *fuuuS24364 08 23 72 *AAA3 44 5-66};
my %hits;
$hits{$1} = $2 while $simple=~/\*([a-z]+|[A-Z]+)([^*\\z]+)/g;
print "$_ ==> $hits{$_}\n" for keys %hits;
...
This would print (on the above data):
CZ ==> 1 2.3 4-56
AAA ==> 3 44 5-66
fuuu ==> S24364 08 23 72
But your problem is not really completely specified ...
Regards
M.
------------------------------
Date: Tue, 30 Jan 2007 11:54:16 -0600
From: Todd <null@no_spam.com>
Subject: Re: Regex repeating capture
Message-Id: <epo0o8$9l9$1@home.itg.ti.com>
Jay wrote:
> Howdy,
>
> I'm trying to break an input string into multpile pieces using a
> series of delimiters that start with an asterisk. Following the
> asterisk is a mulitple character identifier immediately followed by a
> data string of variable length. The input string may contain more than
> one identifier anywhere in the string. In all, there are 50+
> identifiers to search for and the asterisk is allowed to part of the
> data string as long as it isn't defined as an identifier (it would be
> treated as another identifier at that point).
>
> Here is a simple example:
> *CZ1 2.3 4-56 *fuuuS24364 08 23 72
>
> I'd like to break this into
> CZ
> 1 2.3 4-56
> fuuu
> S24364 08 23 72
>
> I have tried the pattern (?:\*(CZ|fuuu)(.*)), which produces the
> following ouput:
> CZ
> 1 2.3 4-56 *fuuuS24364 08 23 72
>
> How can I force it to repeat the capturing?
>
> Thanks,
> Jay
>
my $line = '*CZ1 2.3 4-56 *fuuuS24364 08 23 72';
$line =~ /\*(CZ)(.+)\s+\*(fuuu)(.+)\s*$/;
# $1 = CZ
# $2 = 1 2.3 4-56
# $3 = fuuu
# $4 = S24364 08 23 72
Todd
------------------------------
Date: 30 Jan 2007 14:35:05 GMT
From: anno4000@radom.zrz.tu-berlin.de
Subject: Re: Shared memory location
Message-Id: <5293cpF1mo13sU1@mid.dfncis.de>
rajendra <rajendra.prasad@in.bosch.com> wrote in comp.lang.perl.misc:
> Hello All,
> I would like to know how to create shared memory location used in
> multithreading using perl commands.
Shared memory is handled by the functions shmget, shmread and
shmwrite.
Anno
------------------------------
Date: Tue, 30 Jan 2007 15:00:45 +0100
From: Mirco Wahab <wahab-mail@gmx.de>
Subject: Re: sprintf or pack
Message-Id: <epnjcf$aul$3@mlucom4.urz.uni-halle.de>
Paul Lalli wrote:
> On Jan 30, 7:33 am, "sonet" <sonet....@msa.hinet.net> wrote:
>> How to use pack or sprintf do the same thing?
>> $b='A';
>> $a=ord($b);
>> print int($a/16) . ($a % 16) ;
>
> printf "%x", $a;
other TIMTOWTDIs
print unpack "H*", 'A';
or (non portable)
print unpack("H", 'A')
.unpack("h", 'A');
or
print +(ord('A')>>4)
.(ord('A')&15);
etc.
M.
------------------------------
Date: 30 Jan 2007 09:12:56 -0700
From: Eric Schwartz <emschwar@pobox.com>
Subject: Re: Statistics Extraction
Message-Id: <87bqkg4ho7.fsf@aragorn.emschwar>
"doni" <doni.sekar@gmail.com> writes:
> On Jan 25, 2:42 pm, Eric Schwartz <emsch...@pobox.com> wrote:
> > Can anyone let me know where I went wrong.It would help if you could include some data in the example, using the
> > __DATA__ keyword. And you could please let us know what it did, what
> > you expected, and how they differ-- almost nobody is interested in figuring all that out for you.
>
> Here is the data that I was using. I have attached 1 copy of MAC, PHY
> and NETWORK Stats in here but in the file there will be atleast 10
> copies of MAC, PHY and NETWORK Stats.
That is helpful, but you really need to read 'perldoc perldata'. In
it, you will see that stuff following __DATA__ in a program is
available to read using the __DATA__ filehandle. That way, you don't
have to open an external file, or tell people "now, make sure you save
things in this file", which God knows they're probably going to typo
when they name it and so forth. It's simple and easy, if done right.
Read perldata, and look for the section on __DATA__.
<snip example data>
> I modified the code as per your suggestions but I am not sure whether I
> modified it perfectly...
You came close, but missed a few obvious steps that indicate that you
never actually tried to run the code you posted. That's a bit rude,
as it means that you're basically asking me to do the work your
computer could do for you. I'm feeling a bit generous today, but
really, you shouldn't do that; others are not likely to feel so
generous, and I myself probably won't again.
> #! /usr/bin/perl
>
> use warnings;
> use strict;
Good!
> my $ex_data = 'net.log';
> open (NETSTAT,$ex_data) || die("Cannot Open File: $!");
If you use __DATA__, these two lines aren't needed.
> my %stats = ();
> my $message;
>
> while (<NETSTAT>) {
> chomp;
> if (/^(\S+)\s+statistics:/)
> {
> $message = $1;
> }
> elsif (/^\s+(\d+)\s+(\S.*)/)
> {
> ($value, $key) = ($1, $2);
This line doesn't compile, because you're using strict (Which is good!
Do that!), but you didn't declare the variables $value and $key.
This, in turn, clearly shows that you can't have tried to run this
program, or Perl would have complained at you that these variables
haven't been declared. Bad doni! No biscuit!
my ($value, $key) = ($1, $2);
> if ($message =~ /mac/i) {
> push @{$stats{mac}{$key}}, @value;
> }
> if ($message =~ /phy/i) {
> push @{$stats{phy}{$key}}, @value;
> }
> if ($message =~ /network/i) {
> push @{$stats{dli}{$key}}, @value;
> }
These statements also could not compile, because you meant to type
$value, not @value. ALWAYS CUT AND PASTE YOUR CODE!!! Do *not*
rewrite it for posting, or you make silly mistakes like this. That's
why we have Posting Guidelines, which are posted here twice a week,
that tell you things like, "Always cut and paste your code, do not
retype it." Please read them-- we didn't write them because we were
bored one day. There is useful info there.
If it is not crucial that the network stats be stored under the key
'dli', then you could just replace these three if statements with:
push @{$stats{lc($message)}{$key}}, $value;
That will create keys under $stats named 'mac', 'phy', and 'network',
and also produces code that's a lot easier to read. I actually had to
look over those if statements two or three times to figure out which
part was different-- at first, they all looked the same. If they all
look about the same, then you should cheat, and make them all the
same.
> }
> else
> { }
> }
>
> close(NETSTAT) || die("Cannot close $ex_data: $!");
If you used the DATA filehandle, this wouldn't be needed either.
> foreach my $type (keys %stats) {
> print "$type stats:\n";
>
> foreach my $messages (keys %{$stats{$type}}) {
> print "\tmessages is: $messages\n";
>
> foreach my $val (@{$type{$messages}}) {
This may or may not be my fault, I'm too lazy to go back and check,
but again, this can't run. There is no hash %type here-- I think you
got $type{$messages} confused with $type. What you *really* want here
is
foreach my $val (@{$stats{$type}{$messages}}) {
Do you see why? If not, please read perlreftut until you do. It's
very important for making multilevel hashes that you understand how to
dereference them-- if all I've done is give you one fix for one
program, then I have done you a disservice, and I'm sorry.
> print "\t\tMessage value is: $val\n";
> }
> }
> }
>
>
> The output I got when I ran the code is:
That's impossible. The code you posted will not run.
-=Eric
------------------------------
Date: 30 Jan 2007 16:20:26 GMT
From: anno4000@radom.zrz.tu-berlin.de
Subject: Re: subpattern reference using vaiable subpattern index
Message-Id: <5299iaF1ne7rtU1@mid.dfncis.de>
Mumia W. (NOSPAM) <paduille.4060.mumia.w+nospam@earthlink.net> wrote in comp.lang.perl.misc:
> On 01/29/2007 09:17 AM, Yakov wrote:
> > I have submatch index in a variable, $SUB=5. How do I write submatch
> > reference $5 using $SUB ?
> > Is ${$SUB} ok ?
> >
>
> my $SUB = 5;
> my @matches = m/.../;
> print $matches[$SUB];
>
> > 2. Is there array of subpatterns ($1..$<N>) so I can take it's size ?
> >
> > Yakov
> >
>
> Yes, after you have assigned the output from the match operator to an array.
That's not always necessary. The system arrays @+ and @- also hold
(string pointers to) the submatches. See perlvar about them.
> my @matches = m/.../;
> print scalar(@matches);
...or
m/.../ and print @- - 1, "\n";
The array @- longer by one than @matches would be because $-[0]
holds the beginning of the entire match (captured or not). Hence
the subtraction of one.
On the other hand, with a //g modifier your list assignment would
collect all the captures in the global match while @- reflects only
the state of the last match.
Anno
------------------------------
Date: Tue, 30 Jan 2007 22:41:10 GMT
From: "David Walker" <david@cs.cf.ac.uk>
Subject: Re: Tar on Windows XP
Message-Id: <aQPvh.76866$KT2.5094@newsfe2-win.ntli.net>
Rob
Yes that worked! I was using Tar 1.07, which didn't have the
DO_NOT_USE_PREFIX feature, so I've now installed Tar 1.30.
Thanks for your help.
David
"Sisyphus" <sisyphus1@nomail.afraid.com> wrote in message
news:45bec765$0$9776$afc38c87@news.optusnet.com.au...
>
> "David Walker" <david@cs.cf.ac.uk> wrote in message
> news:Gxuvh.18350$8j7.13192@newsfe1-win.ntli.net...
>> Hi
>>
>> I am trying to create a tar archive on Windows XP with the Perl code
>> below. However, when I look at the archive created (using WinZip 10.0)
>> all the directory information is lost, and when I untar it using WinZip
>> all I get is all the files in the same directory. Can some kind person
>> please tell me how I can create the tar file so that when it is untar'd
>> the directory structure will be preserved.
>>
>
> From the "FAQ" section in 'perldoc Archive::Tar' :
>
> -- quote --
> I'm using WinZip, or some other non-POSIX client, and files are not
> being extracted properly!
> By default, "Archive::Tar" is in a completely POSIX-compatible
> mode,
> which uses the POSIX-specification of "tar" to store files. For
> paths greather than 100 characters, this is done using the "POSIX
> header prefix". Non-POSIX-compatible clients may not support this
> part of the specification, and may only support the "GNU Extended
> Header" functionality. To facilitate those clients, you can set the
> $Archive::Tar::DO_NOT_USE_PREFIX variable to "true". See the
> "GLOBAL
> VARIABLES" section for details on this variable.
> -- end quote --
>
> Hopefully, that deals with the problem you're facing. (If not, let us
> know - and also tell us which version of Archive::Tar you have.).)
>
> Cheers,
> Rob
>
------------------------------
Date: 30 Jan 2007 10:57:55 -0800
From: josh.dewinter@gmail.com
Subject: Win32::OLE version conflict problem...please help
Message-Id: <1170183475.134999.89270@p10g2000cwp.googlegroups.com>
Hi there
Semi newbie here. If this is the wrong forum for this, I
apologize. I'm trying to use a nifty module, the "Mail::Outlook"
module, that lets you send mail from Microsoft outlook when it's the
only mail client available on the system. So, that being said, to
implement this functionality, it uses another module - Win32::OLE - to
do the actual talking between Perl and Outlook. Now the issue - I'm
getting the following error when I try to run my script:
Win32::OLE object version 0.1701 does not match $Win32::OLE::VERSION
0.1702 at C:/Perl/lib/DynaLoader.pm line 225.
When I scoured the net, I eventually found that the "OLE.dll"
file Perl uses is version 1701, and the "OLE.pm" file is version 1702,
hence the conflict (I think). What can I do? I can't find version
1701 of Outlook.pm on CPAN or elsewhere, and one more limitation of my
conundrum is that I work for a company where I can't just update
(ActiveState) Perl to a new version (if that even would help), because
it hasn't been approved by our IT people yet.
-J
------------------------------
Date: 30 Jan 2007 15:52:47 -0800
From: "Craig" <cgrady357@gmail.com>
Subject: Re: Win32::OLE version conflict problem...please help
Message-Id: <1170201167.472955.235320@h3g2000cwc.googlegroups.com>
Please post the script that causes this error. We can't troubleshoot
your issue without the code.
------------------------------
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 89
*************************************