[27487] in Perl-Users-Digest
Perl-Users Digest, Issue: 9087 Volume: 10
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Sat Mar 25 03:05:52 2006
Date: Sat, 25 Mar 2006 00:05:07 -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 Sat, 25 Mar 2006 Volume: 10 Number: 9087
Today's topics:
Re: Debugging with Speech: Issues and Work-arounds? <nospam-abuse@ilyaz.org>
file renamer... request feedback <noone@nowhere.com>
Re: file renamer... request feedback <uri@stemsystems.com>
Re: file renamer... request feedback <uri@stemsystems.com>
Re: file renamer... request feedback <noone@nowhere.com>
Re: file renamer... request feedback <noone@nowhere.com>
Re: file renamer... request feedback <uri@stemsystems.com>
Re: file renamer... request feedback <john@castleamber.com>
Re: file renamer... request feedback <john@castleamber.com>
Re: file renamer... request feedback <noone@nowhere.com>
Re: file renamer... request feedback <noone@nowhere.com>
Re: file renamer... request feedback <noone@nowhere.com>
Re: file renamer... request feedback <tintin@invalid.invalid>
Re: file renamer... request feedback <noone@nowhere.com>
Re: Parallel LWP callback doesn't terminate. <peter.hill@modulus.com.au>
Re: Security implications of taking a stylesheet URL fr <usenet200603@tobyinkster.co.uk>
short form for (defined $x and defined $y and ... )? <markus.dehmann@gmail.com>
Re: short form for (defined $x and defined $y and ... ) <uri@stemsystems.com>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Sat, 25 Mar 2006 07:41:42 +0000 (UTC)
From: Ilya Zakharevich <nospam-abuse@ilyaz.org>
Subject: Re: Debugging with Speech: Issues and Work-arounds?
Message-Id: <e02s7m$ln2$1@agate.berkeley.edu>
[A complimentary Cc of this posting was sent to
Veli-Pekka Tätilä
<vtatila@mail.student.oulu.fi>], who wrote in article <e01e4j$gm2$1@news.oulu.fi>:
> >> consider the most important. While the file and package info is great
> >> initially, it is mostly redundant after the first reading,
> > ... unless it changes.
> That is true, that's why I said mostly redundant. I guess I should write a
> filter which only shows such things when the previous output is not equal to
> the current one.
So far I can remember 3 places in debugger you compain about:
a) How dumpvar.pl/Dumpvar.pm dump an array;
b) Pre-prompt "positional info" output;
c) Debugger's prompt itself.
For 'a' just use `o compactDump=1'. For 'b' and 'c', you may need to
modify the debugger itself.
0) Find the code which prints "positional info";
1) Separate it into a subroutine which takes all the information
from its arguments (no access to global variables). Likewise for
the prompt-creation code.
2) Make the debugger to access this code through subroutine references
stored in global variables;
3) Reset these global variables to the values which suit you (from
~/.perldbrc).
I think this is going to be a very small modification to the
debugger. (When done, do not forget to post patches to perl5-porters.)
> > I think a short summary of the problems as you see them would make
> > things much more grokable.
> It is remarkably difficult unless you've used a screen reader before.
Maybe I will need *soon*. ;-(
[Many pages of very detailed discussion skipped.]
Hmm, what I asked was a short summary. E.g., above I suggested how
you can tune many things done in debugger to suite your needs. WHAT
ELSE (capitalized ;-) would you like to be changed?
Yours,
Ilya
------------------------------
Date: Sat, 25 Mar 2006 04:51:21 GMT
From: TOC <noone@nowhere.com>
Subject: file renamer... request feedback
Message-Id: <c%3Vf.143509$ww3.24048@fe05.news.easynews.com>
#!/usr/bin/perl
use strict;
use File::Find;
use warnings;
use diagnostics;
finddepth(\&fixnames, ".");
sub fixnames
{
return if /^\./;
return if /lost\+found/;
my $new = $_;
my $old = $_;
$new = lc $new ;
$new =~ tr/a-z0-9._/_/c;
$new =~ s/^_//g;
$new =~ s/\.mpeg$/mpg/g;
$new =~ s/\.ram$/rm/g;
$new =~ s/\.qt$/mov/g;
$new =~ s/\.jpeg$/jpg/g;
$new =~ s/_\././g;
$new =~ s/\._/_/g;
$new =~ tr/__/_/s;
$new =~ tr/.././s;
return if $new eq $old;
# rename($old, $new) or die $!;
print "renaming \n $File::Find::name ---> \n $File::Find::dir/$new\n" or
die $!;
------------------------------
Date: Sat, 25 Mar 2006 00:19:59 -0500
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: file renamer... request feedback
Message-Id: <x77j6jje2o.fsf@mail.sysarch.com>
>>>>> "T" == TOC <noone@nowhere.com> writes:
T> my $new = $_;
T> my $old = $_;
i would do that as:
my $old = $_ ;
my $new = $old ;
T> $new = lc $new ;
combine that with the initial assignment:
my $new = lc $old ;
T> $new =~ tr/a-z0-9._/_/c;
T> $new =~ s/^_//g;
why the /g? since it is anchored it can only happen one time
T> $new =~ s/\.mpeg$/mpg/g;
ditto.
and you are losing the . too. do you want that?
T> $new =~ s/\.ram$/rm/g;
T> $new =~ s/\.qt$/mov/g;
T> $new =~ s/\.jpeg$/jpg/g;
more of same.
T> $new =~ s/_\././g;
T> $new =~ s/\._/_/g;
??
some comments on WHY you are doing these transforms would be
useful. this brings up a rule of mine:
code is what, comments are why.
learn and apply that and your code will be much better.
T> $new =~ tr/__/_/s;
that makes little sense. tr takes a character set (similar to [] in s///
but NOT THE EXACT SAME THING) so any dups in there are just redundant.
$new =~ tr/_//s;
this does same thing. the right side will be the same as the left
side. the squeeze option will work on any repeated chars from the right
side.
T> $new =~ tr/.././s;
ditto.
T> return if $new eq $old;
T> # rename($old, $new) or die $!;
T> print "renaming \n $File::Find::name ---> \n $File::Find::dir/$new\n" or
T> die $!;
print rarely fails (full file system is about the only known failure) so
why die on it?
uri
--
Uri Guttman ------ uri@stemsystems.com -------- http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org
------------------------------
Date: Sat, 25 Mar 2006 00:41:03 -0500
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: file renamer... request feedback
Message-Id: <x7y7yzhyj4.fsf@mail.sysarch.com>
>>>>> "r" == robic0 <robic0> writes:
r> On Sat, 25 Mar 2006 00:19:59 -0500, Uri Guttman <uri@stemsystems.com> wrote:
T> $new =~ s/^_//g;
>>
>> why the /g? since it is anchored it can only happen one time
>>
r> Not so cowboy. But to "strip" __ could better be done by s/^_+//
there is no spec so you can't change what he did. typical of you to not
get that. also my comment is fine. show me a case where a single
anchored (no alternation) is done more than one time with /g. oh sorry,
you won't know the difference between + and /g so don't bother answering.
just go learn python already. they will welcome with open arms (if they
had arms)
uri
--
Uri Guttman ------ uri@stemsystems.com -------- http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org
------------------------------
Date: Sat, 25 Mar 2006 05:53:56 GMT
From: TOC <noone@nowhere.com>
Subject: Re: file renamer... request feedback
Message-Id: <UV4Vf.98363$Iq2.83330@fe07.news.easynews.com>
Thanks, here is the code with your suggestions Incorporated.
#!/usr/bin/perl
use strict;
use File::Find;
use warnings;
use diagnostics;
finddepth(\&fixnames, ".");
sub fixnames
{
return if /^\./; # do not rename dotfiles
return if /lost\+found/; # do not rename this system
directory
my $old = $_ ; # preserve original name
my $new = lc $old ; # preserve new name, and lowercase
it at the same time
$new =~ tr/a-z0-9._/_/c; # translate all characters to _
except 'a-z 0-9 . _'
$new =~ s/^_+//; # remove all leading _'s
$new =~ s/\.mpeg$/\.mpg/; # fix odd extensions
$new =~ s/\.ram$/\.rm/;
$new =~ s/\.qt$/\.mov/;
$new =~ s/\.jpeg$/\.jpg/;
$new =~ s/_\./\./g; # replace _. with .
$new =~ s/\._/_/g; # replace ._ with _
$new =~ tr/__//s; # squeeze repeated _'s
$new =~ tr/..//s; # squeeze repeated .'s
return if $new eq $old; # abort if filname has not changed
return if (-e $new); # abort if new name already exists
(i would like to change increment the file and try again somehow)
rename($old, $new) or warn "Cannot rename $old:$!\n"; # I wonder
if I should do something like --> rename($was, $_) unless $was eq $old;
print "renaming \n $File::Find::name ---> \n $File::Find::dir/$new\n";
# show the files that we are renaming
------------------------------
Date: Sat, 25 Mar 2006 05:56:50 GMT
From: TOC <noone@nowhere.com>
Subject: Re: file renamer... request feedback
Message-Id: <CY4Vf.98442$Iq2.21605@fe07.news.easynews.com>
TOC <noone@nowhere.com> wrote in
news:UV4Vf.98363$Iq2.83330@fe07.news.easynews.com:
> changed return if (-e $new); # abort if new name
> already exists
yuk... change the comments so that they are on their own line.
------------------------------
Date: Sat, 25 Mar 2006 01:13:04 -0500
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: file renamer... request feedback
Message-Id: <x7pskbhx1r.fsf@mail.sysarch.com>
>>>>> "T" == TOC <noone@nowhere.com> writes:
T> Thanks, here is the code with your suggestions Incorporated.
T> my $old = $_ ; # preserve original name
T> my $new = lc $old ; # preserve new name, and lowercase
T> it at the same time
preserve? those are assignments, not preservations.
T> $new =~ s/_\./\./g; # replace _. with .
T> $new =~ s/\._/_/g; # replace ._ with _
read those comments carefully. are they WHAT or WHY?
T> $new =~ tr/__//s; # squeeze repeated _'s
T> $new =~ tr/..//s; # squeeze repeated .'s
you didn't read the part about tr/..// being the same as tr/.//
T> print "renaming \n $File::Find::name ---> \n $File::Find::dir/$new\n";
T> # show the files that we are renaming
your comments are mostly what. try to learn how to say why. ask yourself
the question, WHY am i replacing _. with . and put that answer in the
comment.
uri
--
Uri Guttman ------ uri@stemsystems.com -------- http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org
------------------------------
Date: 25 Mar 2006 06:16:12 GMT
From: John Bokma <john@castleamber.com>
Subject: Re: file renamer... request feedback
Message-Id: <Xns97912BE8CBDBcastleamber@130.133.1.4>
TOC <noone@nowhere.com> wrote:
for ( $new ) {
tr/a-z0-9._/_/c; # translate all characters to
s/^_+//; # remove all leading _'s
s/\.mpeg$/\.mpg/; # fix odd extensions
:
:
tr/..//s; # squeeze repeated .'s
}
$new eq $old and return;
-e $new and return;
--
John Bokma Freelance software developer
&
Experienced Perl programmer: http://castleamber.com/
------------------------------
Date: 25 Mar 2006 06:18:08 GMT
From: John Bokma <john@castleamber.com>
Subject: Re: file renamer... request feedback
Message-Id: <Xns9791312F62F0castleamber@130.133.1.4>
Uri Guttman <uri@stemsystems.com> wrote:
> just go learn python already. they will welcome with open arms (if
> they had arms)
uncalled for, don't turn this in a language war.
KF robic0 or ignore it
--
John Bokma Freelance software developer
&
Experienced Perl programmer: http://castleamber.com/
------------------------------
Date: Sat, 25 Mar 2006 06:26:21 GMT
From: TOC <noone@nowhere.com>
Subject: Re: file renamer... request feedback
Message-Id: <ho5Vf.135935$Tl3.68528@fe06.news.easynews.com>
> T> my $old = $_ ; # preserve original name
> T> my $new = lc $old ; # preserve new name, and
> lowercase T> it at the same time
>
> preserve? those are assignments, not preservations.
um.. my terminology.. I guess it is confusing, I'll change it.
>
> T> $new =~ s/_\./\./g; # replace _. with .
> T> $new =~ s/\._/_/g; # replace ._ with _
>
> read those comments carefully. are they WHAT or WHY?
well the overall purpose of the script is to make the names pretty...
according to what I define as pretty =)
>
> T> $new =~ tr/__//s; # squeeze repeated _'s
> T> $new =~ tr/..//s; # squeeze repeated .'s
>
> you didn't read the part about tr/..// being the same as tr/.//
yes I did =)... after I posted that... lol
> T> print "renaming \n $File::Find::name ---> \n
> $File::Find::dir/$new\n"; T> # show the files that we are
> renaming
>
> your comments are mostly what. try to learn how to say why. ask
> yourself the question, WHY am i replacing _. with . and put that
> answer in the comment.
>
> uri
>
well I am replacing ._ with _ and _. with . to fix the following examples:
my_file_.txt
my_other._file.txt
thanks for your help, by the way.
------------------------------
Date: Sat, 25 Mar 2006 06:40:26 GMT
From: TOC <noone@nowhere.com>
Subject: Re: file renamer... request feedback
Message-Id: <uB5Vf.46550$G_2.13473@fe08.news.easynews.com>
John Bokma <john@castleamber.com> wrote in news:Xns97912BE8CBDBcastleamber@
130.133.1.4:
> TOC <noone@nowhere.com> wrote:
>
> for ( $new ) {
>
> tr/a-z0-9._/_/c; # translate all characters to
> s/^_+//; # remove all leading _'s
> s/\.mpeg$/\.mpg/; # fix odd extensions
> :
> :
> tr/..//s; # squeeze repeated .'s
> }
>
> $new eq $old and return;
> -e $new and return;
>
thanks.... here is the latest... forgive the lack of comments, I am working
on them...
#!/usr/bin/perl
use strict;
use File::Find;
use warnings;
use diagnostics;
finddepth(\&fixnames, ".");
sub fixnames
{
return if /^\./;
return if /lost\+found/;
my $o = $_ ;
my $n = lc $o ;
for ( $n )
{
tr/a-z0-9._/_/c;
s/^_+//;
s/\.mpeg$/\.mpg/;
s/\.ram$/\.rm/;
s/\.qt$/\.mov/;
s/\.jpeg$/\.jpg/;
s/_\./\./g;
s/\._/_/g;
tr/_//s;
tr/.//s;
}
$n eq $o and return;
-e $n and return;
# rename($o, $n) or warn "Cannot rename $o:$!\n";
print "renaming \n $File::Find::name ---> \n $File::Find::dir/$n\n";
------------------------------
Date: Sat, 25 Mar 2006 07:17:03 GMT
From: TOC <noone@nowhere.com>
Subject: Re: file renamer... request feedback
Message-Id: <N76Vf.109480$NN1.18217@fe12.news.easynews.com>
more improvements, thanks for all the feedback, keep it coming =)
#!/usr/bin/perl
use strict;
use File::Find;
use warnings;
finddepth(\&fixnames, ".");
sub fixnames
{
return if /^\./;
return if /lost\+found/;
my $o = $_ ;
for ( $_ )
{
y/A-Z/a-z/;
y/a-z0-9._/_/c;
s/^_+//;
s/\.mpeg$/\.mpg/;
s/\.ram$/\.rm/;
s/\.qt$/\.mov/;
s/\.jpeg$/\.jpg/;
s/_\./\./g;
s/\._/_/g;
y/_//s;
y/.//s;
}
return if $_ eq $o or -e $_;
rename $o,$_ or warn "Cannot rename $o:$!\n";
print "renaming \n $File::Find::name ---> \n $File::Find::dir/$_\n";
------------------------------
Date: Sat, 25 Mar 2006 19:52:45 +1200
From: "Tintin" <tintin@invalid.invalid>
Subject: Re: file renamer... request feedback
Message-Id: <QE6Vf.8480$JZ1.313207@news.xtra.co.nz>
"TOC" <noone@nowhere.com> wrote in message
news:N76Vf.109480$NN1.18217@fe12.news.easynews.com...
> more improvements, thanks for all the feedback, keep it coming =)
> #!/usr/bin/perl
> use strict;
> use File::Find;
> use warnings;
>
> finddepth(\&fixnames, ".");
>
> sub fixnames
> {
> return if /^\./;
> return if /lost\+found/;
> my $o = $_ ;
> for ( $_ )
> {
> y/A-Z/a-z/;
> y/a-z0-9._/_/c;
> s/^_+//;
> s/\.mpeg$/\.mpg/;
> s/\.ram$/\.rm/;
> s/\.qt$/\.mov/;
> s/\.jpeg$/\.jpg/;
> s/_\./\./g;
> s/\._/_/g;
> y/_//s;
> y/.//s;
> }
> return if $_ eq $o or -e $_;
> rename $o,$_ or warn "Cannot rename $o:$!\n";
> print "renaming \n $File::Find::name ---> \n $File::Find::dir/$_\n";
Are you playing golf now?
Why change $old to $o and $new to $n? The small saving in keystrokes
doesn't help make it any more readable.
------------------------------
Date: Sat, 25 Mar 2006 08:01:55 GMT
From: TOC <noone@nowhere.com>
Subject: Re: file renamer... request feedback
Message-Id: <TN6Vf.174539$KG5.75273@fe04.news.easynews.com>
>
> Are you playing golf now?
>
> Why change $old to $o and $new to $n? The small saving in keystrokes
> doesn't help make it any more readable.
>
>
>
golf is cool, I wish I was good enough to play... someday.
here is a golfish answer: (spaces -> underscores only)
#!/usr/bin/perl -nl
$o=$_;y/ /_/;-e||rename$o,$_
------------------------------
Date: Sat, 25 Mar 2006 05:06:34 GMT
From: "Peter Hill" <peter.hill@modulus.com.au>
Subject: Re: Parallel LWP callback doesn't terminate.
Message-Id: <ud4Vf.15733$dy4.14873@news-server.bigpond.net.au>
<xhoster@gmail.com> wrote in message
news:20060324121011.116$GW@newsreader.com...
> "Peter Hill" <peter.hill@modulus.com.au> wrote:
> > <xhoster@gmail.com> wrote in message
> > news:<20060323110859.954$zU@newsreader.com>...
> > > "Peter Hill" <peter.hill@modulus.com.au> wrote:
> > [snip]
> > > > print "We never get here.\n";
> > > > return C_ENDCON;
> > > > }
> > > >
> > >
> > > As far as I can tell, the only error you are committing is in your
> > > expectations, not in your code. The only way "We never get here"
> > > should be printed is if you either get called with empty content (and
> > > why would that happen? If there is nothing to send to the callback,
> > > why call it?), or with an over-sized chunk. Otherwise, the
> > > "return length $content;" will be activated, by-passing the print.
> > >
>
> > Yes, thank you, that makes perfect sense. I was basing the callback
> > function on an article be Randal Shwartz ("Parallel Bad Links") but I
can
> > now see that that doesn't work either; something must have changed since
> > the article was written.
>
> Yep, I see that it did used to call the callback one final time with
> zero content length, but it no longer does. The changes seems to have
> happened in 2.54_19, in LWP/Parallel/Protocol/http.pm, with this line:
>
> if ( $response && &headers($response) && length($buf)) {
>
> The "&& length($buf)" didn't used to be there. It says is a bug fix, but
> now I'm starting to think it was more of a bug-introduction :)
>
> > It appears that I need to do my analysis on each
> > chunk as it is returned rather than expecting to deal with a complete
> > document.
>
> I believe you would now override the on_return in order to process the
> "complete" document, but you could still use the callback to mark the
> document as "complete" after maxsize is reached, even if it isn't truly
> complete. (There is supposed to be max_size attribute which will
> automatically cap the size without needing to use callbacks at all, but
> there doesn't seem to be any supported way to set this attribute!)
>
> Xho
>
> --
> -------------------- http://NewsReader.Com/ --------------------
> Usenet Newsgroup Service $9.95/Month 30GB
Thanks again for the detective work; I can see the way forward now, with an
overridden on_return.
Regards,
Peter Hill
------------------------------
Date: Sat, 25 Mar 2006 02:02:50 +0000
From: Toby Inkster <usenet200603@tobyinkster.co.uk>
Subject: Re: Security implications of taking a stylesheet URL from a CGI parameter
Message-Id: <avkef3-k8d.ln1@ophelia.g5n.co.uk>
Scott W Gifford wrote:
> We've got a Web-based application written in Perl that is designed to
> integrate as a frame into many different Web sites. We currently have
> several stylesheets available to allow the user to match the look and
> feel to their existing Web site. We're considering allowing our users
> to host their own stylesheet, and just pass in its URL as a CGI
> parameter.
As others have already posted, there may or may not be ways for a
malicious person to craft a nasty stylesheet.
But look at the bigger picture. If this malicious person has linked to
your application like this:
<iframe src="http://example.org/application.cgi?stylesheet=http://example.net/evil.css">
</iframe>
then the visitor who recieves evil.css is *already* looking at the
malicious person's website, so the malicious person has already had ample
opportunity to load up evil.css.
So I say, accept any style sheets -- just make sure you replace '"' with
'"' and '<' with '<'.
--
Toby A Inkster BSc (Hons) ARCS
Contact Me ~ http://tobyinkster.co.uk/contact
------------------------------
Date: Sat, 25 Mar 2006 00:14:07 -0500
From: Markus Dehmann <markus.dehmann@gmail.com>
Subject: short form for (defined $x and defined $y and ... )?
Message-Id: <48k1t2Fkp6skU1@individual.net>
I often find myself typing
> unless(defined $x and defined $y and defined $z){ # ... many variables
> # ...
> }
Is there a shorter form to write that? (I mean apart from "&&" for "and").
Unfortunately,
> unless(defined ($x,$y,$z))
does not work.
Thanks!
Markus
------------------------------
Date: Sat, 25 Mar 2006 00:33:13 -0500
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: short form for (defined $x and defined $y and ... )?
Message-Id: <x73bh7jdgm.fsf@mail.sysarch.com>
>>>>> "MD" == Markus Dehmann <markus.dehmann@gmail.com> writes:
MD> I often find myself typing
>> unless(defined $x and defined $y and defined $z){ # ... many variables
>> # ...
>> }
then don't type that! i suspect a poor design that makes you check many
variables for defined. i have never seen that in quality code.
what that means is to solve the real problem (why are you doing that)
rather than the 'how do i do this?' problem.
post (a short complete program) that shows why you do all those defined
calls.
uri
--
Uri Guttman ------ uri@stemsystems.com -------- http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org
------------------------------
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 V10 Issue 9087
***************************************