[29253] in Perl-Users-Digest
Perl-Users Digest, Issue: 497 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Jun 8 18:10:25 2007
Date: Fri, 8 Jun 2007 15:09:07 -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, 8 Jun 2007 Volume: 11 Number: 497
Today's topics:
Re: a password encryption question. <joe@inwap.com>
ASP.Net App Issue... Maybe Resolved via PERL? <getmyemails2@yahoo.com>
Re: ASP.Net App Issue... Maybe Resolved via PERL? <glex_no-spam@qwest-spam-no.invalid>
Finding out where my pattern was matched <disco@anywherebuthere.com>
Re: Finding out where my pattern was matched (Alan Curry)
Re: Finding out where my pattern was matched <tony_curtis32@yahoo.com>
Re: Finding out where my pattern was matched <noreply@gunnar.cc>
Re: Finding out where my pattern was matched <disco@anywherebuthere.com>
Re: How to keep Documentation close to the Method using <ilias@lazaridis.com>
https download dstauffer@lacledegas.com
Re: https download <noreply@gunnar.cc>
Re: Sorting <uri@stemsystems.com>
Re: system call hendedav@gmail.com
Re: The Concepts and Confusions of Prefix, Infix, Postf <xahlee@gmail.com>
Re: Yet Another Software Challenge <joe@inwap.com>
Re: Yet Another Software Challenge <joe@inwap.com>
Re: Yet Another Software Challenge <rjh@see.sig.invalid>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Fri, 08 Jun 2007 11:41:36 -0700
From: Joe Smith <joe@inwap.com>
Subject: Re: a password encryption question.
Message-Id: <b62dnSP9oK95P_TbnZ2dnUVZ_veinZ2d@comcast.com>
nightcats@gmail.com wrote:
> One would creat an encryption that looking like this, "MMehO15WVVavQ"
> (Or every password with a MMxxxxxxxx pattern
>
> The other would be looking like this, "ae8FEYefjhNw2"
> Or every password with an "aexxxxx" pattern.
Those two formats are the same.
The first two characters of the password hash (the "salt")
is supposed to be random. Do not attempt to make them all
the same; that will defeat the purpose of the salt and is
not a good idea.
If you have control over the programs that create those two
password files, you should modify them to use a proper
random salt as documented for the crypt() function.
-Joe
------------------------------
Date: Fri, 08 Jun 2007 11:47:44 -0700
From: "getmyemails2@yahoo.com" <getmyemails2@yahoo.com>
Subject: ASP.Net App Issue... Maybe Resolved via PERL?
Message-Id: <1181328464.233434.269400@p77g2000hsh.googlegroups.com>
Hey All,
ASP Info:
I have some classes that I recently built for a website which uses
the
HttpWebRequest & HttpWebResponse objects from the System.Net
namespace.
Basically, the classes rap submitted data up, connect to external
websites
on external servers and post / remove the data from these other sites.
It works fine locally but when uploaded to the BCentral production
server,
the outgoing requests get shutdown.
Apparently, for the System.Net name space, you cannot specify the
port. The
outgoing port will be dynamic random. It will be the client port and
not the
service port. The port range can be 1024 and above. It is by design
and
there is no way you can specify the client port.
Now, as for BCentral, they do allow outbound connections but only on
the
"default" ports such at 80 for http, etc. Every other non-essential
port
is locked down and they don't open up other ports because of security
concerns.
I have been told that posting data via CGI is very common and that one
can easily specify the port. Has anyone out there done something like
this?
Thanks,
TC
------------------------------
Date: Fri, 08 Jun 2007 14:09:53 -0500
From: "J. Gleixner" <glex_no-spam@qwest-spam-no.invalid>
Subject: Re: ASP.Net App Issue... Maybe Resolved via PERL?
Message-Id: <4669a981$0$508$815e3792@news.qwest.net>
getmyemails2@yahoo.com wrote:
[.. removed a bunch of stuff that has nothing to do with the question...]
>
> I have been told that posting data via CGI is very common and that one
> can easily specify the port. Has anyone out there done something like
> this?
No. No one has ever done anything with CGI.... My favorite search
engine doesn't find any hits for "perl cgi", I guess yours doesn't
either.. :-)
perldoc CGI
perldoc LWP
------------------------------
Date: Fri, 08 Jun 2007 18:27:38 GMT
From: disco <disco@anywherebuthere.com>
Subject: Finding out where my pattern was matched
Message-Id: <uchai.24696$xU4.9006@newsfe1-gui.ntli.net>
Basically I'm reading a file into an array as usual, each line occupying
one element of the array etc.
Then I'm using "my @filtered = grep(/foo/, @list)" to cut out anything I
don't want. My problem is that I need to know where exactly in the
file/array the matches were picked out from.
TIA, disco.
------------------------------
Date: Fri, 8 Jun 2007 18:42:41 +0000 (UTC)
From: pacman@TheWorld.com (Alan Curry)
Subject: Re: Finding out where my pattern was matched
Message-Id: <f4c7v1$fit$1@pcls6.std.com>
In article <uchai.24696$xU4.9006@newsfe1-gui.ntli.net>,
disco <disco@anywherebuthere.com> wrote:
>Basically I'm reading a file into an array as usual, each line occupying
>one element of the array etc.
>
>Then I'm using "my @filtered = grep(/foo/, @list)" to cut out anything I
>don't want. My problem is that I need to know where exactly in the
>file/array the matches were picked out from.
If you want grep to return the array indexes of the elements that match, you
have to start with a list of all the array indexes (0..$#list) and then,
within the matching expression, extract the array value corresponding to $_
and match that instead of $_ directly, which would just be the index number.
Like this:
my @filtered_idxs = grep { $list[$_] =~ /foo/ } 0..$#list;
And you can follow that with an array slice to get an array of matching
values, so that for all $n, $filtered[$n] is the matching value which was at
position $filtered_idxs[$n] in the original array:
my @filtered = @list[@filtered_idx];
Or combine them into a single list of [index,value] pairs, all in one
statement:
my @filtered_pairs = map { [$_,$list[$_]] }
grep { $list[$_] =~ /foo/ } 0..$#list;
--
Alan Curry
pacman@world.std.com
------------------------------
Date: Fri, 08 Jun 2007 14:40:36 -0400
From: Tony Curtis <tony_curtis32@yahoo.com>
Subject: Re: Finding out where my pattern was matched
Message-Id: <f4c7r5$2dl$1@knot.queensu.ca>
disco wrote:
> Basically I'm reading a file into an array as usual, each line occupying
> one element of the array etc.
>
> Then I'm using "my @filtered = grep(/foo/, @list)" to cut out anything I
> don't want. My problem is that I need to know where exactly in the
> file/array the matches were picked out from.
Ah, you have a two-pass solution (bad).
What you want to do is read the input record by record (e.g. line) and
filter as you go. Then you know which record (line) is being filtered.
See "$." in "perldoc perlvar".
If you really need to slurp it all in, then you could foreach() over
@list to enumerate the elements.
hth
t
------------------------------
Date: Fri, 08 Jun 2007 21:25:05 +0200
From: Gunnar Hjalmarsson <noreply@gunnar.cc>
Subject: Re: Finding out where my pattern was matched
Message-Id: <5ctotlF3242euU1@mid.individual.net>
disco wrote:
> Basically I'm reading a file into an array as usual,
That sounds to me as far too often. See Tony's reply.
--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl
------------------------------
Date: Fri, 08 Jun 2007 21:18:05 GMT
From: disco <disco@anywherebuthere.com>
Subject: Re: Finding out where my pattern was matched
Message-Id: <hIjai.24909$xU4.8408@newsfe1-gui.ntli.net>
Alan Curry wrote:
>
> If you want grep to return the array indexes of the elements that match, you
> have to start with a list of all the array indexes (0..$#list) and then,
> within the matching expression, extract the array value corresponding to $_
> and match that instead of $_ directly, which would just be the index number.
> Like this:
>
> my @filtered_idxs = grep { $list[$_] =~ /foo/ } 0..$#list;
>
> And you can follow that with an array slice to get an array of matching
> values, so that for all $n, $filtered[$n] is the matching value which was at
> position $filtered_idxs[$n] in the original array:
>
> my @filtered = @list[@filtered_idx];
>
> Or combine them into a single list of [index,value] pairs, all in one
> statement:
>
> my @filtered_pairs = map { [$_,$list[$_]] }
> grep { $list[$_] =~ /foo/ } 0..$#list;
>
Thanks very much, annoyed I didn't think of this :)
------------------------------
Date: Fri, 08 Jun 2007 20:02:54 -0000
From: Ilias Lazaridis <ilias@lazaridis.com>
Subject: Re: How to keep Documentation close to the Method using POD?
Message-Id: <1181332974.925405.137880@k79g2000hse.googlegroups.com>
On Jun 8, 7:51 pm, "J. Gleixner" <glex_no-s...@qwest-spam-no.invalid>
wrote:
> lazaridis....@gmail.com wrote:
...
> > I've found this in the perldoc, but have 5 lines to place one line
> > does not meet my requirements:
>
> Well, what are your requirements?
>
> In short, if you want one line, then POD is not the answer.
ok, thanks for the open answer.
> If you want to use POD, then you'll need more than one line.
ok
.
--
http://dev.lazaridis.com/lang/ticket/12
------------------------------
Date: Fri, 08 Jun 2007 20:14:32 -0000
From: dstauffer@lacledegas.com
Subject: https download
Message-Id: <1181333672.634025.323350@n4g2000hsb.googlegroups.com>
Hi, everyone.
I have a URL from a vendor that looks like this:
https://ats.yourserver.com/resumeprocessing/remote_report.asp?sid=280&uid=myname@mycompany.com&pwd=mypassword&dfrom=01-01-2007&dto=01-01-2008&fmt=csv
If I paste this into a browser I get a download dialog box.
What is the best approach for scripting this with perl? Can I leave
the uid and pwd in the URL string or should I take them out?
I really appreciate any direction you could give me.
------------------------------
Date: Fri, 08 Jun 2007 22:29:44 +0200
From: Gunnar Hjalmarsson <noreply@gunnar.cc>
Subject: Re: https download
Message-Id: <5ctsmtF323vn0U1@mid.individual.net>
dstauffer@lacledegas.com wrote:
> Hi, everyone.
> I have a URL from a vendor that looks like this:
> https://ats.yourserver.com/resumeprocessing/remote_report.asp?sid=280&uid=myname@mycompany.com&pwd=mypassword&dfrom=01-01-2007&dto=01-01-2008&fmt=csv
>
> If I paste this into a browser I get a download dialog box.
>
> What is the best approach for scripting this with perl? Can I leave
> the uid and pwd in the URL string or should I take them out?
Is the uid and pwd required to access the file(s)? If so, do you mind
that anybody using your script would see your uid/pwd? If you do, you
may or may not be able to pass the info as a POST request instead. It
depends on the program on the target side.
Btw, "the best approach" would be just the same irrespective of which
programming language you would use. In other words, your question is not
a Perl question.
--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl
------------------------------
Date: Fri, 08 Jun 2007 20:06:52 GMT
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: Sorting
Message-Id: <x7vedydxcz.fsf@mail.sysarch.com>
>>>>> "k" == keith <keith@bytebrothers.co.uk> writes:
k> I think I just had a religious experience. That is new and wonderful,
k> and thank you for explaining it for me!
if you want a module to do all that (and more) for you, check out
Sort::Maker.
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: Fri, 08 Jun 2007 13:15:59 -0700
From: hendedav@gmail.com
Subject: Re: system call
Message-Id: <1181333759.254650.3810@n4g2000hsb.googlegroups.com>
On Jun 7, 1:41 am, Joe Smith <j...@inwap.com> wrote:
> hende...@gmail.com wrote:
> >>> if (system("./backup.pl \"$_\" 30 \&") == 0) {
> > Since the system call
> > has an appended & at the end to indicate to run as a seperate process,
> > the browser shouldn't be waiting on perl to finish that additional
> > script call, right?
>
> Using "&" alone is insufficient, since STDIN, STDOUT, and STDERR are
> still being held open by the backgrounded task.
>
> $log_file = '/dev/null'
> if (system qq(./backup.pl "$_" 30 </dev/null >>$log_file 2>&1 &) == 0 {
>
> -Joe
Thanks for the responses Mumia and Joe. Joe your solution worked
great. Would there be a problem embedding the $log_file value
directly into the qq statement? I tried it and it worked just fine.
I just wanted to make sure there wasn't something I was overlooking as
to why I should use a variable instead of the direct value.
Thanks,
Dave
------------------------------
Date: Fri, 08 Jun 2007 13:46:14 -0700
From: "xahlee@gmail.com" <xahlee@gmail.com>
Subject: Re: The Concepts and Confusions of Prefix, Infix, Postfix and Fully Functional Notations
Message-Id: <1181335574.107472.229370@x35g2000prf.googlegroups.com>
How Purely Nested Notation Limits The Language's Utility
[The full HTML formatted article is available at:
http://xahlee.org/UnixResource_dir/writ/notations.html
]
2007-05-03
There is a common complain by programers about lisp's notation, of
nested parenthesis, being unnatural or difficult to read. Long time
lisp programers, often counter, that it is a matter of conditioning,
and or blaming the use of =E2=80=9Cinferior=E2=80=9D text editors that are =
not
designed to display nested notations. In the following, i describe how
lisp notation is actually a problem, in several levels.
(1) Some 99% of programers are not used to the nested parenthesis
syntax. This is a practical problem. On this aspect along, lisp's
syntax can be considered a problem.
(2) Arguably, the pure nested syntax is not natural for human to read.
Long time lispers may disagree on this point.
(3) Most importantly, a pure nested syntax discourages frequent or
advanced use of function sequencing or compositions. This aspect is
the most devastating.
The first issue, that most programers are not comfortable with nested
notation, is well known. It is not a technical issue. Whether it is
considered a problem of the lisp language is a matter of philosophical
disposition.
The second issue, about nested parenthesis not being natural for human
to read, may be debatable. I do think, that deep nesting is a problem
to the programer. Here's a example of 2 blocks of code that are
syntactically equivalent in the Mathematica language:
vectorAngle[{a1_, a2_}] :=3D Module[{x, y},
{x, y} =3D {a1, a2}/Sqrt[a1^2 + a2^2] // N;
If[x =3D=3D 0, If[Sign@y =3D=3D=3D 1, =CF=80/2, -=CF=80/2],
If[y =3D=3D 0, If[Sign@x =3D=3D=3D 1, 0, =CF=80],
If[Sign@y =3D=3D=3D 1, ArcCos@x, 2 =CF=80 - ArcCos@x]
]
]
]
SetDelayed[vectorAngle[List[Pattern[a1,Blank[]],Pattern[a2,Blank[]]]],
Module[List[x,y],
CompoundExpression[
Set[List[x,y],
N[Times[List[a1,a2],
Power[Sqrt[Plus[Power[a1,2],Power[a2,2]]],-1]]]],
If[Equal[x,0],
If[SameQ[Sign[y],1],Times[=CF=80,Power[2,-1]],
Times[Times[-1,=CF=80],Power[2,-1]]],
If[Equal[y,0],If[SameQ[Sign[x],1],0,=CF=80],
If[SameQ[Sign[y],1],ArcCos[x],
Plus[Times[2,=CF=80],Times[-1,ArcCos[x]]]]]]]]]
In the latter, it uses a full nested form (called FullForm in
Mathematica). This form is isomorphic to lisp's nested parenthesis
syntax, token for token (i.e. lisp's =E2=80=9C(f a b)=E2=80=9D is Mathemati=
ca's
=E2=80=9Cf[a,b]=E2=80=9D). As you can see, this form, by the sheer number o=
f nested
brackets, is in practice problematic to read and type. In Mathematica,
nobody really program using this syntax. (The FullForm syntax is
there, for the same reason of language design principle shared with
lisp of =E2=80=9Cconsistency and simplicity=E2=80=9D, or the commonly toute=
d lisp
advantage of =E2=80=9Cdata is program; program is data=E2=80=9D.)
The third issue, about how nested syntax seriously discourages
frequent or advanced use of inline function sequencing on the fly, is
the most important and I'll give further explanation below.
One practical way to see how this is so, is by considering unix's
shell syntax. You all know, how convenient and powerful is the unix's
pipes. Here are some practical example: =E2=80=9Cls -al | grep xyz=E2=80=9D=
, or =E2=80=9Ccat a
b c | grep xyz | sort | uniq=E2=80=9D.
Now suppose, we get rid of the unix's pipe notation, instead, replace
it with a pure functional notation: e.g. (uniq (sort (grep xyz (cat a
b c)))), or enrich it with a composition function and a pure function
construct (=CE=BB), so this example can be written as: ((composition uniq
sort (lambda (x) (grep xyz x))) (cat a b c)).
You see, how this change, although syntactically equivalent to the
pipe =E2=80=9C|=E2=80=9D (or semantically equivalent in the example using f=
unction
compositions), but due to the cumbersome nested syntax, will force a
change in the nature of the language by the code programer produces.
Namely, the frequency of inline sequencing of functions on the fly
will probably be reduced, instead, there will be more code that define
functions with temp variables and apply it just once as with
traditional languages.
A language's syntax or notation system, has major impact on what kind
of code or style or thinking pattern on the language's users. This is
a well-known fact for those acquainted with the history of math
notations.
The sequential notation =E2=80=9Cf@g@h@x=E2=80=9D, or =E2=80=9Cx//h//g//f=
=E2=80=9D, or unixy =E2=80=9Cx|h|g|
f=E2=80=9D, are far more convenient and easier to decipher, than =E2=80=9C(=
f (g (h
x)))=E2=80=9D or =E2=80=9C((composition f g h) x)=E2=80=9D. In actual code,=
any of the f, g, h
might be a complex pure function (aka lambda constructs, full of
parenthesis themselves).
Lisp, by sticking with a almost uniform nested parenthesis notation,
it immediately reduces the pattern of sequencing functions, simply
because the syntax does not readily lend the programer to it as in the
unix's =E2=80=9Cx|h|g|f=E2=80=9D. For programers who are aware of the codin=
g pattern
of sequencing functions, now either need to think in terms of a
separate =E2=80=9Ccomposition=E2=80=9D construct, and or subject to the much
problematic typing and deciphering of nested parenthesis.
(Note: Lisp's sexp is actually not that pure. It has ad hoc syntax
equivalents such as the =E2=80=9Cquote=E2=80=9D construct =E2=80=9C '(a b c=
) =E2=80=9D, and also =E2=80=9C`=E2=80=9D,
=E2=80=9C#=E2=80=9D, =E2=80=9C,@=E2=80=9D constructs, precisely for the pur=
pose of reducing
parenthesis and increasing readability. Scheme's coming standard the
R6RS =E2=86=97, even proposes the introduction of [] and {} and few other
syntax sugars to break the uniformity of nested parenthesis for
legibility. Mathematica's FullForm, is actually a version of
unadulterated nested notation as can be.)
Xah
xah@xahlee.org
=E2=88=91 http://xahlee.org/
------------------------------
Date: Fri, 08 Jun 2007 11:57:57 -0700
From: Joe Smith <joe@inwap.com>
Subject: Re: Yet Another Software Challenge
Message-Id: <Lu-dnVNh_IYkO_TbnZ2dnUVZ_tOmnZ2d@comcast.com>
Grzegorz Wróbel wrote:
> Not really. The line contains 114024 characters and it is impossible to
> select it in the Firefox's source viewer.
It's more convenient to save it to a file and work from there.
perl -ne 's/(Yet)/\n$1/g and print' ignition.html > temp.txt
-Joe
------------------------------
Date: Fri, 08 Jun 2007 12:08:59 -0700
From: Joe Smith <joe@inwap.com>
Subject: Re: Yet Another Software Challenge
Message-Id: <vOCdnbUU-tDSNPTbnZ2dnUVZ_tOmnZ2d@comcast.com>
yanosc@gmail.com wrote:
> On Jun 8, 12:51 pm, Richard Heathfield <r...@see.sig.invalid> wrote:
>> Keith Thompson said:
>>
>> Likewise. Furthermore, that's an illegal contract, and has no legal
>> validity. It's okay to say "here are the terms of use - if you don't
>> like them, go away", but that's not what he's doing. He's opening a
>> shop on the High Street, waiting for people to come through the door
>> out of curiosity, and then saying to them "by coming through that door,
>> you have agreed to the Terms of Use for this shop", which might be
>> anything - e.g. Para 17) You agree to hand over ALL your money to the
>> shopkeeper, in return for a small plastic toy of no significant value
>> whatsoever.
>>
>
> You're TOTALLY WRONG ! I have not opened any shop!
That does not change the fact that your "terms of use" is an
unenforceable contract, and illegal in most jurisdictions.
Because the content is publicly available to anyone (without
requiring a password or other contractual obligation), we can
reproduce, republish, display, frame, download, transmit, modify,
rent, loan, sell, assign, distribute, reverse engineer, adapt,
edit, or create derivative works
without fear of reprisal. We can also
store, reproduce, transmit, publicly display, publicly perform,
distribute, publish, broadcast or otherwise make available the content
if we so choose.
Section 8 is reasonable, all the others are null and void.
------------------------------
Date: Fri, 08 Jun 2007 20:59:50 +0000
From: Richard Heathfield <rjh@see.sig.invalid>
Subject: Re: Yet Another Software Challenge
Message-Id: <oKydnSWtcOVUX_TbRVnyiwA@bt.com>
yanosc@gmail.com said:
> On Jun 8, 12:51 pm, Richard Heathfield <r...@see.sig.invalid> wrote:
>> Keith Thompson said:
>>
>> Likewise. Furthermore, that's an illegal contract, and has no legal
>> validity. It's okay to say "here are the terms of use - if you don't
>> like them, go away", but that's not what he's doing. He's opening a
>> shop on the High Street, waiting for people to come through the door
>> out of curiosity, and then saying to them "by coming through that
>> door, you have agreed to the Terms of Use for this shop", which might
>> be anything - e.g. Para 17) You agree to hand over ALL your money to
>> the shopkeeper, in return for a small plastic toy of no significant
>> value whatsoever.
>>
>
> You're TOTALLY WRONG ! I have not opened any shop!
Ah, you took me literally. That was not my intent. I accept that you
haven't opened any shop. It was what we call an "analogy" - a metaphor,
a word picture, a parallel.
<snip>
> I don't make any money from this site. Nevertheless,
> this site is protected by copyrights and nobody is authorized to
> infringe them.
Wouldn't dream of it, sunshine.
> I must say that I really don't understand the surge of violence for
> such a matter.
Violence? What violence? I see no violence. I see a bit of shouting from
your direction, but apart from that, it's all pretty quiet.
<snip>
>> I have no doubt that the OP will be eager to learn from this, and
>> will change his Terms of Use page forthwith.
>
> The contract is governed by the Law of France, dear!
No, it isn't, love, partly because I'm not *in* France, and partly
because there ain't no contract.
--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
------------------------------
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 497
**************************************