[26695] in Perl-Users-Digest
Perl-Users Digest, Issue: 8799 Volume: 10
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Tue Dec 27 00:05:33 2005
Date: Mon, 26 Dec 2005 21:05:05 -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 Mon, 26 Dec 2005 Volume: 10 Number: 8799
Today's topics:
Re: Apache and Perl in Windows <1usa@llenroc.ude.invalid>
Re: My Regexp XML Parser -> Structured Perl Data, Cut robic0
Re: not a valid win32 application <vzeo882n@verizon.net>
Re: Serious Perl Regular Expression deficiency? robic0
Re: Serious Perl Regular Expression deficiency? robic0
Re: Serious Perl Regular Expression deficiency? robic0
Very serios perl problem? (BUG?) <issakov@t-online.de>
Re: Very serios perl problem? (BUG?) <ebohlman@omsdev.com>
Re: Very serios perl problem? (BUG?) <tadmc@augustmail.com>
Re: Very serios perl problem? (BUG?) <issakov@t-online.de>
Re: Very serios perl problem? (BUG?) <jurgenex@hotmail.com>
Re: Very serios perl problem? (BUG?) <issakov@t-online.de>
Re: Very serios perl problem? (BUG?) <issakov@t-online.de>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Tue, 27 Dec 2005 02:47:43 GMT
From: "A. Sinan Unur" <1usa@llenroc.ude.invalid>
Subject: Re: Apache and Perl in Windows
Message-Id: <Xns9738DDBC669A0asu1cornelledu@127.0.0.1>
Henry Law <news@lawshouse.org> wrote in
news:1135444942.28148.0@damia.uk.clara.net:
> A. Sinan Unur wrote:
>> Henry Law <news@lawshouse.org> wrote in
>> news:1135431218.13994.0@ersa.uk.clara.net:
>
>>>Apache under Windows checks the shebang line and if it's not valid
>>>emits
>> Hmmm ... See:
>>
>>
<URL:http://httpd.apache.org/docs/2.0/mod/core.html#scriptinterpreters
>> ource>
> ... etc
>> Sinan
>
> Whereas A. Sinan Unur could with trivially extra effort have written
>
> > Yes, by default, but see ... etc
>
> Your "Hmmm" drips disapproval.
Of course, it does, since you could have, yourself, trivially, with
little extra effort, searched the archives of this newsgroup, or read
the Apache documentation, to find out why one need not change shebang
lines to run Perl scripts under Apache for Windows.
Or, you could have, easily, trivially, with little extra effort, say
"oh, I did not know that, my assertion was unfounded", thanked for the
pointers, and moved on.
Oh well.
Sinan
--
A. Sinan Unur <1usa@llenroc.ude.invalid>
(reverse each component and remove .invalid for email address)
comp.lang.perl.misc guidelines on the WWW:
http://mail.augustmail.com/~tadmc/clpmisc/clpmisc_guidelines.html
------------------------------
Date: Mon, 26 Dec 2005 19:52:26 -0800
From: robic0
Subject: Re: My Regexp XML Parser -> Structured Perl Data, Cut & Paste Version, No Module's (Vol I)
Message-Id: <nie1r1tsjao79erlak2ks5biek16fe6o3n@4ax.com>
On Tue, 20 Dec 2005 23:59:06 -0800, robic0 wrote:
I'm back on the job.
I'm going to post some new code this week that
complies with XML spec.
This is the solution for the Comment/CDATA paradigm
that will be incorporated in the new version:
use strict;
use warnings;
$_ = '
<![CDATA[ <!-- imbed comment --> some text <!-- imbed as well -->]]>
<!--
wasdfvgasvbg <![CDATA[ not really a CDATA ]]>
<tag>at tag in a real comment</tag>
<![CDATA[ not a CDATA ]]>
-->
<!-- This is a real comment -->
';
#### This section of parser deals with
#### circular non-markup imbedding issues.
#### (one inside the other, and so forth)
#### So far just comments & cdata.
#### Use the general substitution magic.
#### This is valid because nesting of
#### comments nor cdata is allowed.
my $cnt = 1;
my %root = ();
my %cdata_elements = ();
print "\n";
# -- Comments (done first) --
while (s/(<!--(.*?)-->)/[$cnt]/s) {
$root{$cnt} = $1;
print "$cnt = Questionable comment: $1\n"; $cnt++;
}
print "\n\n",'='x60,"\n\nThe \"Real\" Stuff -->\n\n";
# -- CDATA (done second) --
while (s/<!\[CDATA\[(.*?)\]\]>/[$cnt]/s)
{
# reconstitute cdata element contents
my $cdata_contents = $1;
my $str = '';
while ( $cdata_contents =~ s/([^\[\]]+)|\[([\d]+)\]//i )
{
if (defined $1)
{
$str .= $1;
}
elsif (defined $2 && exists $root{$2})
{
$str .= $root{$2};
delete $root{$2};
}
else {
my $j = 0; # shouldn't get here
}
}
$root{$cnt} = $str;
$cdata_elements{$cnt} = '';
print "\n$cnt = REAL CDATA: $root{$cnt}\n"; $cnt++;
}
# -- Process leftover comments that are real --
while (my ($key,$val) = each (%root)) {
if (!defined $cdata_elements{$key}) {
# This $root re-assignment is not really necessary
# since $1 will contain the processing text that
# will be processed here, then never used again.
$root{$key} =~ s/<!--(.*?)-->/$1/s;
print "\n$key = REAL COMMENT: $root{$key}\n"; # Or $1
}
}
__END__
1 = Questionable comment: <!-- imbed comment -->
2 = Questionable comment: <!-- imbed as well -->
3 = Questionable comment: <!--
wasdfvgasvbg <![CDATA[ not really a CDATA ]]>
<tag>at tag in a real comment</tag>
<![CDATA[ not a CDATA ]]>
-->
4 = Questionable comment: <!-- This is a real comment -->
============================================================
The "Real" Stuff -->
5 = REAL CDATA: <!-- imbed comment --> some text <!-- imbed as well
-->
4 = REAL COMMENT: This is a real comment
3 = REAL COMMENT:
wasdfvgasvbg <![CDATA[ not really a CDATA ]]>
<tag>at tag in a real comment</tag>
<![CDATA[ not a CDATA ]]>
------------------------------
Date: Mon, 26 Dec 2005 23:38:08 GMT
From: "John W. Burns" <vzeo882n@verizon.net>
Subject: Re: not a valid win32 application
Message-Id: <A9%rf.1369$7S2.1244@trndny09>
"John W. Burns" <vzeo882n@verizon.net> wrote in message
news:Kjzrf.363$SW3.352@trndny08...
> For some inexplicable reason (at least to me) my windows perl application
> has ceased to load.
> When I call perl\bin\perl.exe I receive the message "not a valid win32
> application." OS is Windows XP.
> I have never had this problem in the past. I re-installed Perl from
Active
> State and still receive the same
> error message. Have searched Active State, CPAN, Monks, Microsoft, etc
for
> a fix and can't find one.
> Any ideas on how to solve this problem? Many thanks.
> JWB
>
>
>
Was able to resolve "not a valid win32" problem with Active State perl
installation.
Checked per suggestions I received form list and re-ran virus and spyware,
plus Symantec
Systems Works to diagnose winddows bugs, although they all indicated none
found..
Uninstalled perl for second time, but had to use MoveOnBoot to delete some
Active State files
that received "access denied message" and couldn't delete through normal
steps. After full
deletion re-installed Active State Perl and the "not a valid win32 problem
went away.
Active State's Perl application is up and running again.
Thanks for the suggestions on how to fix this problem.
JWB
------------------------------
Date: Mon, 26 Dec 2005 18:42:27 -0800
From: robic0
Subject: Re: Serious Perl Regular Expression deficiency?
Message-Id: <nn81r19577peeqlg24hfmditvd21hpp00t@4ax.com>
On Fri, 23 Dec 2005 15:17:21 -0800, robic0 wrote:
Thanks for the patients folks. Hope you had a happy
25'th. I started back on this problem a few hours ago.
Initially, this was a nesting problem I couldn't figure
out how to solve with regular expressions. I'm doing a xml
parser using just regex so I want to get this right.
I have concentrated on the docs on regex for this and
oh my god its got problems. I would like the writers
of Perl and Larry Wall to take a look at the code below.
It encapsulates the logic, however it be lumbersome,
of what is takes to implement the "not this string"
in the regular expression machine. Don't ask me to
explain that phrase. I think this is a pristine solution
to what I'm doing however. In other words, given the
XML specifications, this will always work.
XML in general doesen't allow markup nesting (or from
what I imagine) because of the obvious,
"Markup" being the set of characters that act as
delimeters, both start and end of an expression.
The only problem is (for regex that is) some constructs
like "Comments" and "CDATA" conflict in that its
paradigm can result in a deadlocks.
Most SAX or stream parsers get away with this because
they have anchors and process from begin to end.
I use a substitution method in the parser code I've written
that nullifies anchors. I've been using this method
for years on other things. Hey now, doesent that sound like
something the regular expression authors use?
Yeah but they fell down on this one.
Look at what I did here.
I've assumed cdata nesting and comment nesting is illegal,
and it is. I've "assumed" an anchor on one, could have
been either one. The logic uses the limited ability of
regex to capture (hog) all the data, indeed it depends
upon it.
Look at this code very carefully, nesting is not allowed
and is the "only" reason it works. Of course nesting will
throw an error in production code. This code will be
merged with the primary and more XML spec specific changes.
Why am I doint this? I don't know, I have a couple of weeks
free I guess...
Thanks for the comments!
use strict;
use warnings;
$_ = '
<![CDATA[ <!-- imbed comment --> some text <!-- imbed as well -->]]>
<!--
wasdfvgasvbg <![CDATA[ not really a CDATA ]]>
<tag>at tag in a real comment</tag>
<![CDATA[ not a CDATA ]]>
-->
<!-- This is a real comment -->
';
#### This section of parser deals with
#### circular non-markup imbedding issues.
#### (one inside the other, and so forth)
#### So far just comments & cdata.
#### Use the general substitution magic.
#### This is valid because nesting of
#### comments nor cdata is allowed.
my $cnt = 1;
my %root = ();
my %cdata_elements = ();
print "\n";
# -- Comments (done first) --
while (s/(<!--(.*?)-->)/[$cnt]/s) {
$root{$cnt} = $1;
print "$cnt = Questionable comment: $1\n"; $cnt++;
}
print "\n\n",'='x60,"\n\nThe \"Real\" Stuff -->\n\n";
# -- CDATA (done second) --
while (s/<!\[CDATA\[(.*?)\]\]>/[$cnt]/s)
{
# reconstitute cdata element contents
my $cdata_contents = $1;
my $str = '';
while ( $cdata_contents =~ s/([^\[\]]+)|\[([\d]+)\]//i )
{
if (defined $1)
{
$str .= $1;
}
elsif (defined $2 && exists $root{$2})
{
$str .= $root{$2};
delete $root{$2};
}
else {
my $j = 0; # shouldn't get here
}
}
$root{$cnt} = $str;
$cdata_elements{$cnt} = '';
print "\n$cnt = REAL CDATA: $root{$cnt}\n"; $cnt++;
}
# -- Process leftover comments that are real --
while (my ($key,$val) = each (%root)) {
if (!defined $cdata_elements{$key}) {
# This $root re-assignment is not really necessary
# since $1 will contain the processing text that
# will be processed here, then never used again.
$root{$key} =~ s/<!--(.*?)-->/$1/s;
print "\n$key = REAL COMMENT: $root{$key}\n"; # Or $1
}
}
__END__
1 = Questionable comment: <!-- imbed comment -->
2 = Questionable comment: <!-- imbed as well -->
3 = Questionable comment: <!--
wasdfvgasvbg <![CDATA[ not really a CDATA ]]>
<tag>at tag in a real comment</tag>
<![CDATA[ not a CDATA ]]>
-->
4 = Questionable comment: <!-- This is a real comment -->
============================================================
The "Real" Stuff -->
5 = REAL CDATA: <!-- imbed comment --> some text <!-- imbed as well
-->
4 = REAL COMMENT: This is a real comment
3 = REAL COMMENT:
wasdfvgasvbg <![CDATA[ not really a CDATA ]]>
<tag>at tag in a real comment</tag>
<![CDATA[ not a CDATA ]]>
------------------------------
Date: Mon, 26 Dec 2005 19:17:04 -0800
From: robic0
Subject: Re: Serious Perl Regular Expression deficiency?
Message-Id: <jbc1r15ks3bb2f815si0ntbf97hrkliha3@4ax.com>
On Fri, 23 Dec 2005 15:17:21 -0800, robic0 wrote:
I'm back on the job.
I'm going to post some new code this week that
complies with XML spec.
This is the solution for the Comment/CDATA paradigm
that will be incorporated in the new version:
use strict;
use warnings;
$_ = '
<![CDATA[ <!-- imbed comment --> some text <!-- imbed as well -->]]>
<!--
wasdfvgasvbg <![CDATA[ not really a CDATA ]]>
<tag>at tag in a real comment</tag>
<![CDATA[ not a CDATA ]]>
-->
<!-- This is a real comment -->
';
#### This section of parser deals with
#### circular non-markup imbedding issues.
#### (one inside the other, and so forth)
#### So far just comments & cdata.
#### Use the general substitution magic.
#### This is valid because nesting of
#### comments nor cdata is allowed.
my $cnt = 1;
my %root = ();
my %cdata_elements = ();
print "\n";
# -- Comments (done first) --
while (s/(<!--(.*?)-->)/[$cnt]/s) {
$root{$cnt} = $1;
print "$cnt = Questionable comment: $1\n"; $cnt++;
}
print "\n\n",'='x60,"\n\nThe \"Real\" Stuff -->\n\n";
# -- CDATA (done second) --
while (s/<!\[CDATA\[(.*?)\]\]>/[$cnt]/s)
{
# reconstitute cdata element contents
my $cdata_contents = $1;
my $str = '';
while ( $cdata_contents =~ s/([^\[\]]+)|\[([\d]+)\]//i )
{
if (defined $1)
{
$str .= $1;
}
elsif (defined $2 && exists $root{$2})
{
$str .= $root{$2};
delete $root{$2};
}
else {
my $j = 0; # shouldn't get here
}
}
$root{$cnt} = $str;
$cdata_elements{$cnt} = '';
print "\n$cnt = REAL CDATA: $root{$cnt}\n"; $cnt++;
}
# -- Process leftover comments that are real --
while (my ($key,$val) = each (%root)) {
if (!defined $cdata_elements{$key}) {
# This $root re-assignment is not really necessary
# since $1 will contain the processing text that
# will be processed here, then never used again.
$root{$key} =~ s/<!--(.*?)-->/$1/s;
print "\n$key = REAL COMMENT: $root{$key}\n"; # Or $1
}
}
__END__
1 = Questionable comment: <!-- imbed comment -->
2 = Questionable comment: <!-- imbed as well -->
3 = Questionable comment: <!--
wasdfvgasvbg <![CDATA[ not really a CDATA ]]>
<tag>at tag in a real comment</tag>
<![CDATA[ not a CDATA ]]>
-->
4 = Questionable comment: <!-- This is a real comment -->
============================================================
The "Real" Stuff -->
5 = REAL CDATA: <!-- imbed comment --> some text <!-- imbed as well
-->
4 = REAL COMMENT: This is a real comment
3 = REAL COMMENT:
wasdfvgasvbg <![CDATA[ not really a CDATA ]]>
<tag>at tag in a real comment</tag>
<![CDATA[ not a CDATA ]]>
------------------------------
Date: Mon, 26 Dec 2005 19:49:49 -0800
From: robic0
Subject: Re: Serious Perl Regular Expression deficiency?
Message-Id: <qde1r1hcvs9b8q7an2et02u6snhelchcdd@4ax.com>
On Mon, 26 Dec 2005 19:17:04 -0800, robic0 wrote:
>On Fri, 23 Dec 2005 15:17:21 -0800, robic0 wrote:
>
>I'm back on the job.
disregard, wrong thread...
------------------------------
Date: Tue, 27 Dec 2005 01:24:31 +0100
From: Mihail <issakov@t-online.de>
Subject: Very serios perl problem? (BUG?)
Message-Id: <doq1k0$79s$01$1@news.t-online.com>
Hello,
i have spent several hours with very small perl
program and i believe there is something wrong with
perl. Look:
for (1..999)
{
my $i = $_;
$result1 = $result1 + func1($i);
$result2 = $result2 + func2($i);
}
This code contains absolute critical error, but it is
visible only with "use warnings", otherwise perl returns
silently wrong results. To achieve correct results i have
to use:
for (1..999)
{
my $i = $_;
$result1 = $result1 + func1($i);
$i = $_;
$result2 = $result2 + func2($i);
}
O.K. i know unsafety of "$_". But what is wrong with $i? More
interesting. The problem seems to depend on functions used.
I am really confused... Can anybody explain what is wrong.
Regards,
Mihail
----------------------------------------------------------------
#!/usr/bin/perl
use strict;
use warnings;
my $result1 = 0;
my $result2 = 0;
for (1..999)
{
my $i = $_;
$result1 = $result1 + func1($i);
# HERE IS A PROBLEM. $i is undef??????
# and RESULT IS WRONG!!!
#$i = $_; # is a workaround.
$result2 = $result2 + func2($i);
}
print "*** Sum of first sums of digits : $result1\n";
print "*** Sum of last sums of digits : $result2\n";
# TRY TO RENAME func1 <-> func2 below - PROGRAMM BEHAVIOR WILL
# CHANGE. ????????
sub func1
{
my $sum = 0;
do
{
$_[0] =~ m/^(.).?/;
$sum = $sum + $1;
$_[0] =~ s/^.//;
} while ($_[0]);
return $sum;
}
sub func2
{
return $_[0] % 9 if (($_[0] % 9) > 0);
return 9;
}
------------------------------------------------------------
------------------------------
Date: 27 Dec 2005 00:51:24 GMT
From: Eric Bohlman <ebohlman@omsdev.com>
Subject: Re: Very serios perl problem? (BUG?)
Message-Id: <Xns9738BFDAA898ebohlmanomsdevcom@130.133.1.4>
Mihail <issakov@t-online.de> wrote in news:doq1k0$79s$01$1@news.t-
online.com:
> i have spent several hours with very small perl
> program and i believe there is something wrong with
> perl. Look:
No there isn't. You've discovered a feature, not a bug.
> #!/usr/bin/perl
> use strict;
> use warnings;
Thank you for doing this.
>
> my $result1 = 0;
> my $result2 = 0;
>
> for (1..999)
> {
> my $i = $_;
> $result1 = $result1 + func1($i);
> # HERE IS A PROBLEM. $i is undef??????
> # and RESULT IS WRONG!!!
That's because func1() is capable of altering its argument, and did so.
>
> #$i = $_; # is a workaround.
> $result2 = $result2 + func2($i);
> }
> print "*** Sum of first sums of digits : $result1\n";
> print "*** Sum of last sums of digits : $result2\n";
>
>
> # TRY TO RENAME func1 <-> func2 below - PROGRAMM BEHAVIOR WILL
> # CHANGE. ????????
>
> sub func1
> {
> my $sum = 0;
> do
> {
> $_[0] =~ m/^(.).?/;
> $sum = $sum + $1;
> $_[0] =~ s/^.//;
You've altered $_[0]. When you call a sub with arguments, the elements
of @_ become *aliases* to the arguments themselves. When you call this
from your main program, $_[0] has become an alias to $i, and the
preceding statement has exactly the same effect as:
$i =~ s/^.//;
so $i eventually winds up empty.
> } while ($_[0]);
> return $sum;
> }
>
> sub func2
> {
> return $_[0] % 9 if (($_[0] % 9) > 0);
> return 9;
> }
Here you never alter $_[0] and therefore never alter $i.
------------------------------
Date: Mon, 26 Dec 2005 18:59:40 -0600
From: Tad McClellan <tadmc@augustmail.com>
Subject: Re: Very serios perl problem? (BUG?)
Message-Id: <slrndr14fs.snd.tadmc@magna.augustmail.com>
Mihail <issakov@t-online.de> wrote:
> i have spent several hours with very small perl
> program and i believe there is something wrong with
> perl.
No, there is something wrong with your understanding of Perl.
It is doing exactly what you told it to do.
> O.K. i know unsafety of "$_". But what is wrong with $i? More
> interesting. The problem seems to depend on functions used.
>
> I am really confused... Can anybody explain what is wrong.
The third paragraph of
perldoc perlsub
can explain what is wrong.
> for (1..999)
> {
> my $i = $_;
> $result1 = $result1 + func1($i);
> # HERE IS A PROBLEM. $i is undef??????
> # and RESULT IS WRONG!!!
>
> #$i = $_; # is a workaround.
> # TRY TO RENAME func1 <-> func2 below - PROGRAMM BEHAVIOR WILL
> # CHANGE. ????????
>
> sub func1
> {
> $_[0] =~ s/^.//;
The array C<@_> is a local array, but its
elements are aliases for the actual scalar parameters. In particular,
if an element C<$_[0]> is updated, the corresponding argument is
updated
You are changing the alias, so the change is reflected back
in the _caller's_ variable ($i).
Change a copy instead:
sub func1
{ my($arg) = @_;
...
$arg =~ s/^.//;
--
Tad McClellan SGML consulting
tadmc@augustmail.com Perl programming
Fort Worth, Texas
------------------------------
Date: Tue, 27 Dec 2005 03:39:36 +0100
From: Mihail <issakov@t-online.de>
Subject: Re: Very serios perl problem? (BUG?)
Message-Id: <doq9h8$kpn$03$1@news.t-online.com>
Many thanks for replies.
> It is doing exactly what you told it to do.
No. But I know now why (thanks), but still don't like it. I have passed
an argument to function to get results calculated from it. But why perl
must change the variable passed as argument globally? Why it does not
simply use the value of this variable. May be it can be usefull in some
cases, but is it not dangerous?
------------------------------
Date: Tue, 27 Dec 2005 03:49:16 GMT
From: "Jürgen Exner" <jurgenex@hotmail.com>
Subject: Re: Very serios perl problem? (BUG?)
Message-Id: <0R2sf.3224$X86.3213@trnddc04>
Mihail wrote:
> Many thanks for replies.
>
> > It is doing exactly what you told it to do.
>
> No.
Yes, it does. Although it may not do what you intended it to do.
> But I know now why (thanks), but still don't like it. I have
> passed an argument to function to get results calculated from it. But
> why perl must change the variable passed as argument globally? Why it
> does not simply use the value of this variable. May be it can be
> usefull in some cases, but is it not dangerous?
You may want to read up about parameter passing methods in programming
languages, in particular call by value versus call by reference.
To make a long story short: most programmer find call by value to be too
limiting:
- any value that is computed by the sub must be passed back as the return
value of this sub. This can become very awkward if the sub returns multiple
values.
- a sub cannot just change a specific entry in a complex data structure but
instead it must return a new complex data structure which in turn must be
'saved' in the calling sub
- ...
jue
------------------------------
Date: Tue, 27 Dec 2005 05:20:13 +0100
From: Mihail <issakov@t-online.de>
Subject: Re: Very serios perl problem? (BUG?)
Message-Id: <doqfdu$b62$02$1@news.t-online.com>
> You may want to read up about parameter passing methods in programming
> languages, in particular call by value versus call by reference.
>
Syntaxis i used is "pass by value" and i passed the value, but it works
like pass by reference in C++.
------------------------------
Date: Tue, 27 Dec 2005 05:54:02 +0100
From: Mihail <issakov@t-online.de>
Subject: Re: Very serios perl problem? (BUG?)
Message-Id: <doqhda$i08$01$1@news.t-online.com>
Mihail wrote:
>> You may want to read up about parameter passing methods in programming
>> languages, in particular call by value versus call by reference.
>>
>
> Syntaxis i used is "pass by value" and i passed the value, but it works
> like pass by reference in C++.
Perl does not have consistent syntaxis for it. Scalars are only "passed
by reference" with syntaxis which does not look like so. But arrays are
even more difficult (just read).
------------------------------
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 8799
***************************************