[25590] in Perl-Users-Digest
Perl-Users Digest, Issue: 7834 Volume: 10
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Sat Feb 26 11:05:56 2005
Date: Sat, 26 Feb 2005 08:05:20 -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, 26 Feb 2005 Volume: 10 Number: 7834
Today's topics:
Re: generic equivalence partition <xah@xahlee.org>
Great new resource for freelancers! <newsdirectfreelance@yahoo.com>
Re: Great new resource for freelancers! <tadmc@augustmail.com>
Re: maximum size of a hash table (Anno Siegel)
Re: OOP Tutorial <bart.lateur@pandora.be>
Re: OOP Tutorial <bart.lateur@pandora.be>
Re: Parsing a chemical formal <newspost@kohombanDELETE.net>
Performance questions (SQL-statements) (Piet L.)
Re: Performance questions (SQL-statements) <spamtrap@dot-app.org>
Re: Performance questions (SQL-statements) <nospam@bigpond.com>
Re: Pure Perl OpenSSL Library <dkm@kataplop.net>
sequences of numbers <ihatespam@hotmail.com>
Re: sequences of numbers (Anno Siegel)
Re: sequences of numbers <jds@myob.com>
Wide character notation, was Re: How to NOT use utf8. <flavell@ph.gla.ac.uk>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 26 Feb 2005 04:07:11 -0800
From: "Xah Lee" <xah@xahlee.org>
Subject: Re: generic equivalence partition
Message-Id: <1109419631.693212.236890@z14g2000cwz.googlegroups.com>
# the following solution is submitted by
# Sean Gugler and David Eppstein independently
# 20050224.
@def parti(aList, equalFunc):
@ result = []
@ for i in range(len(aList)):
@ for s in result:
@ if equalFunc( aList[i], aList[s[0]] ):
@ s.append(i)
@ break
@ else:
@ result.append( [i] )
@ return [[x+1 for x in L] for L in result] # add 1 to all numbers
@
@---------------
as for my original perl code, i realized it is written to work on a
sorted input. Here it is and the translated Python code.
# perl
sub parti($$) {
my @li = @{$_[0]};
my $sameQ = $_[1];
my @tray=(1);
my @result;
for (my $i=1; $i <= ((scalar @li)-1); $i++) {
if (&$sameQ($li[$i-1], $li[$i])) {
push @tray, $i+1}
else {
push @result, [@tray]; @tray=($i+1);
}
}
push @result, [@tray];
return \@result;
}
@#python
@def parti(li,sameQ):
@ tray=[1];
@ result=[];
@
@ for i in range(1, len(li) ):
@ if sameQ(li[i-1],li[i]):
@ tray.append(i+1)
@ else:
@ result.append(tray)
@ tray=[i+1]
@ result.append(tray)
@ return result
@
http://xahlee.org/perl-python/gen_parti_by_equiv.html
Xah
xah@xahlee.org
http://xahlee.org/PageTwo_dir/more.html
------------------------------
Date: 26 Feb 2005 01:52:16 -0800
From: "directfreelance" <newsdirectfreelance@yahoo.com>
Subject: Great new resource for freelancers!
Message-Id: <1109411536.769701.109090@z14g2000cwz.googlegroups.com>
Dear Freelancer,
Register for FREE and create your online resume in seconds. Great
resource for working professionals.
Bid on projects in your specialization. Freelance categories include
business, engineering, graphics design, programming, finance,
accounting, legal, marketing, advertising, networking, photography, web
site design, writing and more.
REGISTER NOW! IT IS FREE: http://www.directfreelance.com/register.asp
Best regards,
Directfreelance.com team
------------------------------
Date: Sat, 26 Feb 2005 08:54:30 -0600
From: Tad McClellan <tadmc@augustmail.com>
Subject: Re: Great new resource for freelancers!
Message-Id: <slrnd213d6.ga5.tadmc@magna.augustmail.com>
directfreelance <newsdirectfreelance@yahoo.com> wrote:
> REGISTER NOW!
I suggest NOT registering with spammers...
--
Tad McClellan SGML consulting
tadmc@augustmail.com Perl programming
Fort Worth, Texas
------------------------------
Date: 26 Feb 2005 11:09:20 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: maximum size of a hash table
Message-Id: <cvpld0$em0$1@mamenchi.zrz.TU-Berlin.DE>
John Bokma <postmaster@castleamber.com> wrote in comp.lang.perl.misc:
> Anno Siegel wrote:
>
> > John Bokma <postmaster@castleamber.com> wrote in comp.lang.perl.misc:
> >> Tassilo v. Parseval wrote:
> >>
> >> > Also sprach John Bokma:
> >>
> >> > Yet, the number of those bits (as
> >> > you put it) has no bearing on the capacity of a hash. You could use
> >> > a hash function that only returns 2bit-wide numbers and still store
> >> > an amount of items only limited by the available memory in the
> >> > hash.
> >>
> >> Yes, but than one ends up with a hash table with O(n) look up time
> >> :-) So if the hash function is limited to n bits there is a point
> >> that the hash table acts more like 2^n big lists instead of a hash
> >> table.
> >
> > That's no contradiction. A hash of size k (with this kind of
> > collision management) *is* a way to distribute a long list of length n
> > over k lists of average length n/k, no more, no less. Keeping the
> > average length <= 1 is an option, but not the only way to run a hash.
>
> I am more than aware of that, (they teach those things in Utrecht, you know
Hey, what's wrong? It's a public discussion. Some readers may appreciate
an explicit argument.
> ;-) ). I didn't state it was a contradiction, but only that O(n) hash look
> up is not what I want out of a hash table.
>
> I am happy with constant avg length of c, and hence O(1) look up.
Fine. My point is that there are useful applications of hash tables
also in the O(n) range.
Anno
------------------------------
Date: Sat, 26 Feb 2005 13:34:09 GMT
From: Bart Lateur <bart.lateur@pandora.be>
Subject: Re: OOP Tutorial
Message-Id: <emu021pa7af0j6l3k7eapvbc7svclct1r7@4ax.com>
John W. Kennedy wrote:
>Since OpenOffice.org can do it in about three clicks, it might be more
>sensible just to publish it as a PDF.
Unless you want people to edit it. Which you don't.
--
Bart.
------------------------------
Date: Sat, 26 Feb 2005 13:34:17 GMT
From: Bart Lateur <bart.lateur@pandora.be>
Subject: Re: OOP Tutorial
Message-Id: <5fu0219pqurltra643sm62gr1rp2r3d6ra@4ax.com>
Abigail wrote:
>// We must bow to the demands of the masses:
>// http://www.icon.co.za/~mobeus/easyoop.pdf.zip
>
>
>wget failed to get it, repeatedly. Timeouts.
It must have been due to high popularity. ;-)
No, actually, I can't even connect to <http://www.icon.co.za/>.
DNS finds it, as [196.41.128.101] AKA mercedes.worldonline.co.za, but
ping times out.
--
Bart.
------------------------------
Date: Sat, 26 Feb 2005 13:06:22 +0800
From: GreenLeaf <newspost@kohombanDELETE.net>
Subject: Re: Parsing a chemical formal
Message-Id: <38aegtF5n9kjcU1@individual.net>
Luotao Fu wrote:
> GreenLeaf <newspost@kohombanDELETE.net> schrieb:
>>You might also want to consider the radicals (such as hydroxyl -OH)
>>because they are sure to lead to incorrect results if you just ignore
>>parenthesis: for instance Fe(OH)3.
> Thanx for the advise, I didn't think about this one. However it might
> not be a serious problem for me. We have limited the Input on only Stuffs
> containing the first 100 Elements on the periodic Table. Which is more
> important, I define the formatrules of the Inputfiles.
Last time I checked, all Fe, O and H were below 100. :o)
However, since this is a real program as you said, it _may be_ better to
handle the parenthesis, because if you do not, somebody else will have
to format Fe(OH)3 to FeO3H3 - or you will be limiting the usefulness of
your program. Be nice and do them a favor, since it does not need _too
much_ of additional work at your side. A couple more lines to make it
able to handle stuff like Fe2(SO4)3 - as you see in the sub
processToken() ;)
I agree with John's idea though: _no need to bother_ if you will _never_
get such formulae in the first place, and KISS.
use strict;
use warnings;
while (<DATA>){
my @atoms = /((?:\(.+\)|[A-Z][a-z]?)\d*)/g;
my %total; # total count of each element
foreach (@atoms) {
my %stuff = processToken($_);
while (my ($element, $count) = each %stuff){
$total{$element} += $count;
}
}
# here, you have all elements with their respective counts.
while (my ($element, $count) = each %total){
print "$element$count\n";
}
}
sub processToken {
my $token = shift;
if ($token =~ /\(/){ # we have groups
my ($elempart, $numpart) = $token =~ m/\((\w+)\)(\d*)/;
my %grpcounts = processToken($elempart);
$grpcounts{$_} *= ($numpart ? $numpart : 1)
foreach (keys %grpcounts);
return %grpcounts;
} else {
my @atoms = split /(?=[A-Z][a-z]?[0-9]*)/ => $token;
my %atomcounts;
foreach (@atoms){
my ($element, $count) = /([A-Za-z]+)(\d*)/;
$atomcounts{$element} += $count ? $count : 1;
}
return %atomcounts;
}
}
__DATA__
H2O
FeCl3
NaOH
Fe(OH)3
Fe2(SO4)3
------------------------------
Date: 26 Feb 2005 00:35:31 -0800
From: PietLaroy@hotmail.com (Piet L.)
Subject: Performance questions (SQL-statements)
Message-Id: <c47f81f6.0502260035.7cfb0d69@posting.google.com>
I'm dealing with some performance problems.
I work with a hudge database (mysql) and have to perform queries on
it, depending of the parameters that the users give.
The intention is to build a real time website, automatically generated
according to the wishes of the users.
To illustrate the problem:
- here is an exctracting out of the database:
BOOK
book_id
title
publication_date
BOOK_AUTHOR
book_id
person_id
LIST_AUTHORS
person_id
name
firstname
email
- here is an example of the query I execute:
" show all the books written by author 124"
(Remark: a book can have more than one author
So I want something like:
book_title 1
author1_name, author2_name
book_title 2
author3_name, author1_name, author3_name, author4_name
)
The query is:
"SELECT b.*, ba.* from book b, book_author ba
LEFT JOIN list_authors l
ON ba.person_id = l.person_id
WHERE b.book_id = ba.book_id
AND ba.person_id = 124"
- I use XML::HANDLER::YAWRITER to write the result to a file
my $handler = XML::Handler::YAWriter->new(AsFile => "books.xml");
my $generator = XML::Generator::DBI->new(
Handler => $handler,
dbh => $dbh
);
- Then I use xslt to transform it to html, I do this as follows:
my $xslt = XML::XSLT->new ("./books.xsl");
print $xslt->serve("./books.xml");
The problem is thus that this takes (some) minutes to execute all of
this (even if there are a few records as result),
I think the problem is with the JOIN, but I am not sure.
Can someone help me out,
I am not using the write modules,
is my structure not good for what I want to accomplish?
Are there any good books/tutorials/examples on the internet for
generating such an automatic site?
Also a question extra, Should I use CGI or isn't this neccessary?
THanks
PL.
------------------------------
Date: Sat, 26 Feb 2005 04:26:43 -0500
From: Sherm Pendley <spamtrap@dot-app.org>
Subject: Re: Performance questions (SQL-statements)
Message-Id: <78qdnVpLTo1I3b3fRVn-rA@adelphia.com>
Piet L. wrote:
> The problem is thus that this takes (some) minutes to execute all of
> this (even if there are a few records as result),
> I think the problem is with the JOIN, but I am not sure.
Don't waste time trying to theorize about what the problem might be - find
out for sure what it is. Run your query by itself, without all the other
stuff. Does it take a long time? If so, ask - in a MySQL group, not here -
about how to optimize the query.
If it's not the query, do the same thing with the other steps. When you get
to a point where you add a step, and the total time goes from seconds to
minutes, you've found which step is the bottleneck.
> Also a question extra, Should I use CGI or isn't this neccessary?
Ask your users. Do they want a web interface where they can fill in a form?
If so, that means CGI.
sherm--
--
Cocoa programming in Perl: http://camelbones.sourceforge.net
Hire me! My resume: http://www.dot-app.org
------------------------------
Date: Sat, 26 Feb 2005 21:47:08 +1000
From: Gregory Toomey <nospam@bigpond.com>
Subject: Re: Performance questions (SQL-statements)
Message-Id: <38b5ttF5jg9bsU1@individual.net>
Piet L. wrote:
> I'm dealing with some performance problems.
> I work with a hudge database (mysql) and have to perform queries on
> it, depending of the parameters that the users give.
> The intention is to build a real time website, automatically generated
> according to the wishes of the users.
>
> To illustrate the problem:
> - here is an exctracting out of the database:
> BOOK
> book_id
> title
> publication_date
>
> BOOK_AUTHOR
> book_id
> person_id
>
> LIST_AUTHORS
> person_id
> name
> firstname
> email
>
> - here is an example of the query I execute:
> " show all the books written by author 124"
> (Remark: a book can have more than one author
> So I want something like:
> book_title 1
> author1_name, author2_name
> book_title 2
> author3_name, author1_name, author3_name, author4_name
> )
>
> The query is:
> "SELECT b.*, ba.* from book b, book_author ba
> LEFT JOIN list_authors l
> ON ba.person_id = l.person_id
> WHERE b.book_id = ba.book_id
> AND ba.person_id = 124"
>
> - I use XML::HANDLER::YAWRITER to write the result to a file
> my $handler = XML::Handler::YAWriter->new(AsFile => "books.xml");
> my $generator = XML::Generator::DBI->new(
> Handler => $handler,
> dbh => $dbh
> );
>
> - Then I use xslt to transform it to html, I do this as follows:
> my $xslt = XML::XSLT->new ("./books.xsl");
> print $xslt->serve("./books.xml");
>
> The problem is thus that this takes (some) minutes to execute all of
> this (even if there are a few records as result),
> I think the problem is with the JOIN, but I am not sure.
> Can someone help me out,
> I am not using the write modules,
> is my structure not good for what I want to accomplish?
> Are there any good books/tutorials/examples on the internet for
> generating such an automatic site?
>
> Also a question extra, Should I use CGI or isn't this neccessary?
>
> THanks
>
> PL.
I do something quite a bit more complex here:
http://www.float.com.au/scgi-bin/beta/viewipo.cgi?report=advanced
and hints on how to do it here:
http://www.gregorytoomey.com/index.php?option=content&task=view&id=19&Itemid=28
The results are returned generally in <1 sec.
It comes down to experience with query optimisation (for me two decades working with databases).
gtoomey
------------------------------
Date: Sat, 26 Feb 2005 12:12:40 +0100
From: "Marc" <dkm@kataplop.net>
Subject: Re: Pure Perl OpenSSL Library
Message-Id: <4220599a@epflnews.epfl.ch>
Big and Blue <No_4@dsl.pipex.com> writes:
> Marc wrote:
> >
>> I'm developping a software that needs to act as a Certificate
>> Authority. I must use Perl for this.
>
> An odd pre-requisite if it stops you achieving your actual goal.
This will be behind an Apache server. I first wrote the test system
using Python, but Perl is widely used here, so I must use it ;)
>> I would like to avoid forking at each certificate request as there will
>> be several requests within seconds. The problem is that every SSL
>> modules I can find for Perl are using the openssl command line.
>
> My suspicion is that if you are worried about the cost of forking
> then you're looking at the wrong thing. I assume you are intending
> that this system be generating certificates? If so, then the
> resources for that (in particular its random/prime number generating)
> will make any forking resource demands pale into insignificance.
You are right. But if I just want to get some some field from the
certificates, forking is a bit heavy for this... But I will investigate
this. Thanks for the remark ;)
>> Can someone point me to/give me the name of a projet that has (even if
>> not complete) a pure Perl/C OpenSSL library?
>> I would be very surprised if no such project exist...but who knows?
>> :)
>
> Why would you be surprised? Perhaps others see that it would be a
> lot of work for almost no gain? The openssl command already exists.
> Perl has adequate ways to run external commands.
Yes, but if you read the openssl manual, you will se that this is some
sort of 'demo' tool not intended to but used for a CA... It is not
locking the cert db, return status not very easy to use in script (must
read stderr to see if the certificate has been added for example)... I
know this is possible and projects are using this, but this is not as
clean as a pure perl solution... I thought maybe someone did such a
lib, as it is possible to find all sort of thing in Perl... why not?
Thanks,
Marc
------------------------------
Date: Sat, 26 Feb 2005 02:32:13 -0500
From: Big Daddy <ihatespam@hotmail.com>
Subject: sequences of numbers
Message-Id: <cvpkhs$oqr$1@news.chatlink.com>
If I have an array that has elements of the following form
#!usr/bin/perl
my @array;
$array[0] = "0 1 2 3 4 4 5";
$array[1] = "0 2 2 2 3 4 5";
$array[2] = "0 2 2 2 2 3 4";
$array[3] = "0 2 6 8 9 10 12";
How would I get rid of any elements of the array that have 4 or more
adjacent alike elements? For example, in the above array, I would want to
get rid of element 2 because it has the number 2 in 4 adjecent elements.
------------------------------
Date: 26 Feb 2005 11:29:47 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: sequences of numbers
Message-Id: <cvpmjb$g04$1@mamenchi.zrz.TU-Berlin.DE>
Big Daddy <ihatespam@hotmail.com> wrote in comp.lang.perl.misc:
> If I have an array that has elements of the following form
>
>
> #!usr/bin/perl
>
> my @array;
>
> $array[0] = "0 1 2 3 4 4 5";
>
> $array[1] = "0 2 2 2 3 4 5";
>
> $array[2] = "0 2 2 2 2 3 4";
>
> $array[3] = "0 2 6 8 9 10 12";
>
> How would I get rid of any elements of the array that have 4 or more
> adjacent alike elements? For example, in the above array, I would want to
my @sel = map { chop; $_} grep !/(\d+ )\1{3}/, map "$_ ", @array;
Anno
------------------------------
Date: Sat, 26 Feb 2005 11:58:09 GMT
From: "Julia De Silva" <jds@myob.com>
Subject: Re: sequences of numbers
Message-Id: <lvZTd.227958$K7.191872@fe2.news.blueyonder.co.uk>
> #!usr/bin/perl
>
> my @array;
>
> $array[0] = "0 1 2 3 4 4 5";
>
> $array[1] = "0 2 2 2 3 4 5";
>
> $array[2] = "0 2 2 2 2 3 4";
>
> $array[3] = "0 2 6 8 9 10 12";
>
> How would I get rid of any elements of the array that have 4 or more
> adjacent alike elements? For example, in the above array, I would want to
> get rid of element 2 because it has the number 2 in 4 adjecent elements.
>
What have you tired so far ? Homework ?!
------------------------------
Date: Sat, 26 Feb 2005 14:02:56 +0000
From: "Alan J. Flavell" <flavell@ph.gla.ac.uk>
Subject: Wide character notation, was Re: How to NOT use utf8.
Message-Id: <Pine.LNX.4.61.0502261249230.31722@ppepc56.ph.gla.ac.uk>
On Fri, 25 Feb 2005, pkaluski wrote:
> (Carp/Heavy.pm)
> 59 # The following handling of "control chars" is direct from
> 60 # the original code - I think it is broken on Unicode though.
> 61 # Suggestions?
> 62 $arg =~ s/([[:cntrl:]]|[[:^ascii:]])/sprintf("\\x{%x}",ord($1))/eg;
>
> So the author suggests that there may be a problems for unicode,
This following is basically addressed to any here who have a working
familiarity with the Unicode support in Perl and may be able to
comment on what appears to be a bit of confusion (either in my head or
in the Perl documentation).
If I refer to the documentation that comes with ActivePerl 5.8.6 (yes,
I installed an updated version to see if anything significant had
changed), then under "perlunicode", after it says:
Unicode characters can also be added to a string by using the \x{...}
notation. The Unicode code for the desired character, in hexadecimal,
should be placed in the braces. For instance, a smiley face is
\x{263A}.
- we still see this statement, as was in earlier versions:
This encoding scheme only works for characters with a code
of 0x100 or above.
That last sentence seems to imply that we cannot write notations
such as \x{9} or \x{41} - nor even \x{0009} etc. - or at least that
if we try, the results may not be what we expected.
However, if I take a look at perldata, then I find (in a somewhat
tangential context) this:
A literal of the form v1.20.300.4000 is parsed as a string composed
of characters with the specified ordinals. This form, known as
v-strings, provides an alternative, more readable way to construct
strings, rather than use the somewhat less readable interpolation
form "\x{1}\x{14}\x{12c}\x{fa0}". This is useful for representing
Unicode strings [...]
which seems to me to directly contradict what it says in perlunicode.
Looking now at "uniintro", it says:
| perl -e 'print "\x{DF}\n", "\x{0100}\x{DF}\n"'
|
| produces a fairly useless mixture of native bytes and UTF-8, as well
| as a warning:
|
| Wide character in print at ...
Let's try to understand what this is getting at...?
If we code "\x{0100}\x{DF}\n" (that's "A macron, sharp s"), then Perl
*knows* that we need Unicode, and will store a unicode string
(which, as we know, is stored internally in its utf8 format).
If we code \x{DF} alone, then it looks to me as if Perl thinks that
iso-8859-1 will suffice, so it stores the character (which is still
"sharp s") in iso-8859-1 format as a single byte. Yes?
However, surely if anything is done with this character(string) which
calls for unicode format, Perl will upgrade it to unicode format,
won't it?
So I don't really understand that:
"produces a fairly useless mixture of native bytes and UTF-8"
which is quoted above. What's *wrong* (as I see it) with what's
quoted above is that there is an attempt to output a "wide" Unicode
character (A macron, \x{100}) without the proper arrangements having
been made.
But if I have executed
binmode STDOUT, ":utf8";
and then execute e.g
print "\x{9}\x{41}\x{a3}\x{df}\n", "\x{9}\x{41}\x{a3}\x{df}\x{100}\n";
then it will print two lines of properly-encoded utf-8 representing
tab, A, pound sterling, sharp s, newline , followed by
tab, A, pound sterling, sharp s, A macron, newline
just as I had intended. Is there some reason why this *shouldn't*
work, or is the statement:
This encoding scheme only works for characters with a code
of 0x100 or above.
misleading, confusing, or what?
Incidentally, the above samples will need to be run under Windows
using the -C option (or equivalent), since Windows needs to be told
that it's to expect utf8 as output.
OK, now let's come back to this piece in the Carp/Heavy.pm source:
> (Carp/Heavy.pm)
> 59 # The following handling of "control chars" is direct from
> 60 # the original code - I think it is broken on Unicode though.
> 61 # Suggestions?
> 62 $arg =~ s/([[:cntrl:]]|[[:^ascii:]])/sprintf("\\x{%x}",ord($1))/eg;
Evidently the author is intending to *display* characters which are
either control characters, or non-ASCII, in a \x{...} notation, by
analogy with Perl's "wide character" notation for source code.
As far as I can see (and test), *this code works* when supplied with
character strings as data. For the character strings I mentioned
above, it's displaying
\x{9}A\x{a3}\x{df}\x{100}
just as was, I think, intended.
Now, as we see, there seems to be some uncertainty in the Perl
documentation as to whether this notation is properly usable *in Perl
source code*. But what's happening here is no more than a diagnostic
technique, so I'm not too sure what it is that the author is worrying
about.
Where I /can/ now confirm that something nasty is going on, however,
is with Perl's -d option. I sometimes get invalid utf8 sequences
reported, and sometimes Perl crashes. But I think that's a topic for
a different sub-thread. Whatever is going wrong, I don't think it's
this commented statement, as such.
advice, please?
------------------------------
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 7834
***************************************