[17604] in Perl-Users-Digest
Perl-Users Digest, Issue: 5024 Volume: 9
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Mon Dec 4 09:05:54 2000
Date: Mon, 4 Dec 2000 06:05:17 -0800 (PST)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Message-Id: <975938716-v9-i5024@ruby.oce.orst.edu>
Content-Type: text
Perl-Users Digest Mon, 4 Dec 2000 Volume: 9 Number: 5024
Today's topics:
Re: array of unique random numbers <iltzu@sci.invalid>
changing file permissions with a perl command (not from <webmajster@fiver.si>
Re: changing file permissions with a perl command (not (Rafael Garcia-Suarez)
Re: changing file permissions with a perl command (not <webmajster@fiver.si>
Re: changing file permissions with a perl command (not (Tad McClellan)
Re: checking if mail address is valid (Sander van Gennip)
Re: Counting bits. <bart.lateur@skynet.be>
Re: DBD::CSV or TEXT::CSV <chris@grrn.org>
Emacs modules for Perl programming (Jari Aalto+mail.perl)
Re: FAQ 4.32: How do I extract selected columns from (Anno Siegel)
free database richard_dobson@my-deja.com
Free simple counter with your own gifs! <bignat@mail.com>
Re: Help with /\d+\s*(S+)/ Please <lincmad001@telecom-digest.zzn.com>
Re: Help with /\d+\s*(S+)/ Please (Tad McClellan)
Re: Help with sendmail (Ted Weber)
Re: How to do 'sort -u' with Perl for windows? (Tad McClellan)
Re: How to do 'sort -u' with Perl for windows? (Tad McClellan)
Re: howto specify command line options (Rafael Garcia-Suarez)
Re: Loading of modules? (Anno Siegel)
mirroring <guppie84@hotmail.com>
Re: Regex multiline html (Tad McClellan)
Re: regex prob: /(.*)-$1/ in perl 5.6 (Eric Bohlman)
Runtime object initialisation (edited!!) richard_papworth@my-deja.com
Runtime object initialisation richard_papworth@my-deja.com
Re: strings with a minus (Tad McClellan)
Submitting a file via a form <M.I.Planchant@ncl.ac.uk>
term ansi color <dsdf@sdfd.com>
Re: User quota check via web uuscr@my-deja.com
Re: User quota check via web (Stra)
Re: Using goto <iltzu@sci.invalid>
Digest Administrivia (Last modified: 16 Sep 99) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 4 Dec 2000 11:17:24 GMT
From: Ilmari Karonen <iltzu@sci.invalid>
Subject: Re: array of unique random numbers
Message-Id: <975927708.8746@itz.pp.sci.fi>
In article <3A299BBB.11CF43C6@ipartner.net>, Scott Wiersdorf wrote:
>
>my %random_numbers = ();
>while( scalar keys %random_numbers < 50 ) {
> my $rnd = rand();
> $random_numbers{$rnd}++;
>}
The only problem with that solution is that its running time is
theoretically unbounded. In practice that won't be an issue if you're
only picking 50 numbers out of a large set, but it will be if you,
say, want the numbers to be positive integers below 100.
I was going to recommend using either your solution or the Fisher-
Yates shuffle presented in another reply depending on the situation,
but then I realized that it's possible to combine Fisher-Yates and
hashes to obtain a better solution than either of them alone:
sub unique_random_ints {
my ($n, $lim) = @_;
my (@res, %buf);
while (@res < $n) {
my $rn = int rand $lim--;
push @res, $buf{$rn} || $rn;
$buf{$rn} = $buf{$lim} || $lim;
}
return @res;
}
There. Both the running time and the memory usage are proportional to
$n even in the worst case, and completely independent of $lim.
Should this be in the FAQ? Can anyone suggest improvements?
--
Ilmari Karonen -- http://www.sci.fi/~iltzu/
"Get real! This is a discussion group, not a helpdesk. You post
something, we discuss its implications. If the discussion happens to
answer a question you've asked, that's incidental." -- nobull in clpm
------------------------------
Date: Mon, 4 Dec 2000 11:42:58 +0100
From: "Bostjan Kocan" <webmajster@fiver.si>
Subject: changing file permissions with a perl command (not from unix promt!)
Message-Id: <izKW5.42165$GU1.5733@news.siol.net>
Hi!
Nobody seems to understand my question regarding setting file
permissions....
I KNOW how to set a permission from a unix command promt.... It's a simple
chmod <permission> <path_to_file> command.... okay now what I need is how to
trigger this command from inside a .cgi script....
I have a replace script that replaces certain strings in 200 files every
day... First I copy all 200 files from my local to a server... then I run
this script... the script cannot replace strings because it cannot open the
file for writing with a 644 permission.... so before that I have two
choices:
- to change permission of every of 200 files from 644 to 777 by hand using
unix promt
-or to change permissions of all files automaticaly with a script which
first changes permissions from 644 to 777 and then replaces strings and
changes permissions back to 644.
I need a perl command which will change that permissions...
Does anyone have any idea how it looks?
Please don't give me 'perldoc -f chmod' because I don't have the telnet
access to server and cannot execute that command but you can send me a copy
of what that 'perldoc -f chmod' command returns after it's executed.
Thank you!
------------------------------
Date: Mon, 04 Dec 2000 11:06:32 GMT
From: rgarciasuarez@free.fr (Rafael Garcia-Suarez)
Subject: Re: changing file permissions with a perl command (not from unix promt!)
Message-Id: <slrn92munb.oka.rgarciasuarez@rafael.kazibao.net>
Bostjan Kocan wrote in comp.lang.perl.misc:
>
> Please don't give me 'perldoc -f chmod' because I don't have the telnet
> access to server and cannot execute that command but you can send me a copy
> of what that 'perldoc -f chmod' command returns after it's executed.
Or, you can install Perl on your machine and access the documentation.
Or, you can go to http://www.perldoc.org/ and lookup the doc from here.
BTW, changing the permissions on files you've uploaded from a CGI script
will probably not work, because the CGI script will run under the
webserver's user id, which is likely to be different from your user id.
Try to change the permissions of files when you upload them (do you
upload them via FTP? does the FTP server support the CHMOD command?)
--
# Rafael Garcia-Suarez / http://rgarciasuarez.free.fr/
------------------------------
Date: Mon, 4 Dec 2000 14:03:00 +0100
From: "Bostjan Kocan" <webmajster@fiver.si>
Subject: Re: changing file permissions with a perl command (not from unix promt!)
Message-Id: <BCMW5.42170$GU1.5569@news.siol.net>
Yes I upload them with my FTP software (BuletProofFTP).... but I need to
change permissions of 200 files. I can't do that at once because they are in
various directories and crawling from one to another and changing
permissions one by one is a everyday pain.... I need to automate this
process... Well I don't need to do it with perl but need to do it somehow...
Is it possible to automate this process with some FTP program like when it
uploads the file it changes the permission automatically to 777? Is there
any other ways to do it than manualy with FTP???
Thanks!
"Rafael Garcia-Suarez" <rgarciasuarez@free.fr> wrote in message
news:slrn92munb.oka.rgarciasuarez@rafael.kazibao.net...
> Bostjan Kocan wrote in comp.lang.perl.misc:
> >
> > Please don't give me 'perldoc -f chmod' because I don't have the telnet
> > access to server and cannot execute that command but you can send me a
copy
> > of what that 'perldoc -f chmod' command returns after it's executed.
>
> Or, you can install Perl on your machine and access the documentation.
> Or, you can go to http://www.perldoc.org/ and lookup the doc from here.
>
> BTW, changing the permissions on files you've uploaded from a CGI script
> will probably not work, because the CGI script will run under the
> webserver's user id, which is likely to be different from your user id.
> Try to change the permissions of files when you upload them (do you
> upload them via FTP? does the FTP server support the CHMOD command?)
>
> --
> # Rafael Garcia-Suarez / http://rgarciasuarez.free.fr/
------------------------------
Date: Mon, 4 Dec 2000 07:54:38 -0500
From: tadmc@metronet.com (Tad McClellan)
Subject: Re: changing file permissions with a perl command (not from unix promt!)
Message-Id: <slrn92n50e.kk9.tadmc@magna.metronet.com>
Bostjan Kocan <webmajster@fiver.si> wrote:
>Nobody seems to understand my question regarding setting file
>permissions....
Somebody did understand. Maybe you just didn't understand the answer.
>-or to change permissions of all files automaticaly with a script which
>first changes permissions from 644 to 777 and then replaces strings and
>changes permissions back to 644.
>
>I need a perl command which will change that permissions...
Perl's chmod() function does that.
Use Perl's chmod() function.
>Does anyone have any idea how it looks?
The same as in the manual.
>Please don't give me 'perldoc -f chmod'
Why not? That is the answer to your question.
Bostjan meet killfile. killfile meet Bostjan.
>because I don't have the telnet
>access to server and cannot execute that command but
If you do not have access to the Perl docs then you do not have
what is *required* to post to the Perl newsgroup.
Stop posting until you get the docs.
>you can send me a copy
>of what that 'perldoc -f chmod' command returns after it's executed.
You can get a copy of what that 'perldoc -f chmod' command returns
by downloading and installing perl. perl is free.
We are not here to do your bidding.
>Thank you!
Yeah, right.
--
Tad McClellan SGML consulting
tadmc@metronet.com Perl programming
Fort Worth, Texas
------------------------------
Date: Mon, 04 Dec 2000 13:49:08 GMT
From: sander@veenhoven.com (Sander van Gennip)
Subject: Re: checking if mail address is valid
Message-Id: <3a2ba055.21228334@news.xs4all.nl>
On Thu, 30 Nov 2000 22:32:25 -0500, Joshua Nye wrote:
>You can go a step further to:
>
>#!/usr/bin/perl -w
>
>use strict;
>use Net::DNS;
>use Net::SMTP;
>
>my ($user, $domain) = split(/\@/, $ARGV[0]);
>my @mx = mx($domain);
>
>if(@mx) {
> my $rr = shift @mx;
> my $smtp = Net::SMTP->new($rr->exchange);
> $smtp->mail('someone@valid.domain');
> if($smtp->recipient($user . "@" . $domain)) {
> print "Valid addresss: $user\@$domain\n";
> } else {
> print "Invalid address: Mail host will not except mail.\n";
> }
>} else {
> print "Invalid address: No mail server found.\n";
>}
I uploaded the directory 'Net' to my cgi directory and everything
seems to work now. Thanks Joshua, this is a very useful script. Thanks
to everybody else for your thoughts!
Sander
------------------------------
Date: Mon, 04 Dec 2000 10:06:23 GMT
From: Bart Lateur <bart.lateur@skynet.be>
Subject: Re: Counting bits.
Message-Id: <e5rm2tkt122qs52aq5gl9isfnttua0htj1@4ax.com>
Wolfgang Hielscher wrote:
>Michael Guenther wrote:
>> my $count = 0;
>> while ($str=~/1/g){
>> $count ++;
>> }
>
>Or simply use m//g in a list context:
> my $count = @{[$str =~ m/1/g]};
$count = () = $str =~ /1/g;
--
Bart.
------------------------------
Date: Mon, 4 Dec 2000 08:07:35 -0500
From: "Chris Sparnicht" <chris@grrn.org>
Subject: Re: DBD::CSV or TEXT::CSV
Message-Id: <6GMW5.967$NB1.19576@news2.atl>
I want to learn SQL without having to use login procedures,
so I'll probably ask them to install DBD::CSV.
This means I also need to ask my host to install the
TEXT::CSV_XS module as well?
Thanks about the tip on DBD::RAM too! I'll look into that
one as well.
Regards,
Chris
"Jeff Zucker" <jeff@vpservices.com> wrote in message
news:3A2A9421.51DD659D@vpservices.com...
> Chris Sparnicht wrote:
> >
> > 1. I have a virtual site on a unix machine,DBI::Shell
> > ...
> > 2. DBD::CSV does not exist on the the server. Before I ask
> > my host to install DBD::CSV, will I still need login and password
> > to the host or does DBD::CSV allow you to specify files
> > on my site to write/view without a login?
>
> Correct, you don't need a login or password.
>
> > If it is installed, will I be able to specify
> > document paths to specific databases I want to create/use?
>
> Yes.
>
> > 3. I don't have TEXT::CSV available either. Is this an alternative
> > worth asking for?
>
> If you are going to be doing database operations anyway, you might as
> well go straight to DBD::CSV. DBD::CSV depends on Text::CSV (or
> actually Text::CSV_XS) so you are actually getting both for the price of
> one. It really depends on how much you want to approach things in a
> database way and how much in a Perlish way: DBD::CSV would let you use
> SQL (structured query language) to query, sort, update, create, etc.
> while Text::CSV would just provide you with the raw tools to process CSV
> and you'd have to make your own querying, sorting, updating routines.
> Obligatory self-plug (since I wrote it): you might also want to try
> DBD::RAM which is another module very similar to DBD::CSV that allows
> access to a wider range of file formats, to on-the-fly databases, and to
> remote files.
>
> --
> Jeff
------------------------------
Date: 04 Dec 2000 12:15:32 GMT
From: <jari.aalto@poboxes.com> (Jari Aalto+mail.perl)
Subject: Emacs modules for Perl programming
Message-Id: <perl-faq/emacs-lisp-modules_975932079@rtfm.mit.edu>
Archive-name: perl-faq/emacs-lisp-modules
Posting-Frequency: 2 times a month
URL: http://tiny-tools.sourceforge.net/
Maintainer: Jari Aalto <jari.aalto@poboxes.com>
Announcement: "What Emacs lisp modules can help with programming Perl"
Preface
Emacs is your friend if you have to do anything comcerning software
development: It offers plug-in modules, written in Emacs lisp
(elisp) language, that makes all your programmings wishes come
true. Please introduce yourself to Emacs and your programming era
will get a new light.
Where to find Emacs
XEmacs/Emacs, is available to various platforms:
o Unix:
If you don't have one, bust your sysadm.
http://www.gnu.org/software/emacs/emacs.html
http://www.xemacs.org/
Emacs resources at http://home.eu.org/~jari/emacs-elisp.html
o W9x/NT:
http://www.gnu.org/software/emacs/windows/ntemacs.html
Emacs Perl Modules
Cperl -- Perl programming mode
.ftp://ftp.math.ohio-state.edu/pub/users/ilya/perl
.<olson@mcs.anl.gov> Bob Olson (started 1991)
.<ilya@math.ohio-state.edu> Ilya Zakharevich
Major mode for editing perl files. Forget the default
`perl-mode' that comes with Emacs, this is much better. Comes
starndard in newest Emacs.
TinyPerl -- Perl related utilities
.http://home.eu.org/~jari/tiny-tools-beta.zip
.http://home.eu.org/~jari/emacs-tiny-tools.html
If you ever wonder how to deal with Perl POD pages or how to find
documentation from all perl manpages, this package is for you.
Couple of keystrokes and all the documentaion is in your hands.
o Instant function help: See documentation of `shift', `pop'...
o Show Perl manual pages in *pod* buffer
o Load source code into Emacs, like Devel::DProf.pm
o Grep through all Perl manpages (.pod)
o Follow POD manpage references to next pod page with TinyUrl
o Coloured pod pages with `font-lock'
o Separate `tiperl-pod-view-mode' for jumping topics and pages
forward and backward in *pod* buffer.
o TinyUrl is used to jump to URLs (other pod pages, man pages etc)
mentioned in POD pages. (It's a general URL minor mode)
TinyIgrep -- Perl Code browsing and easy grepping
[TinyIgrep is included in the tgz mentioned above]
To grep from all installed Perl modules, define database to
TinyIgrep. There is example in the tgz (ema-tigr.ini) that shows
how to set up datatbases for Perl5, Perl4 whatever you have
installed
TinyIgrep calls Igrep.el to run the find for you, You can adjust
recursive grep options, ignored case, add user grep options.
You can get `igrep.el' module from <kevinr@ihs.com>. Ask for copy.
Check also ftp://ftp.ihs.com/pub/kevinr/
TinyCompile -- Browsing grep results in Emacs *compile* buffer
TinyCompile is minor mode for *compile* buffer from where
you can collapse unwanted lines, shorten the file URLs
/asd/asd/asd/asd/ads/as/da/sd/as/as/asd/file1:NNN: MATCHED TEXT
/asd/asd/asd/asd/ads/as/da/sd/as/as/asd/file2:NNN: MATCHED TEXT
-->
cd /asd/asd/asd/asd/ads/as/da/sd/as/as/asd/
file1:NNN: MATCHED TEXT
file1:NNN: MATCHED TEXT
End
------------------------------
Date: 4 Dec 2000 13:41:32 -0000
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: FAQ 4.32: How do I extract selected columns from a string?
Message-Id: <90g6uc$ven$1@lublin.zrz.tu-berlin.de>
PerlFAQ Server <faq@denver.pm.org> wrote in comp.lang.perl.misc:
>This message is one of several periodic postings to comp.lang.perl.misc
>intended to make it easier for perl programmers to find answers to
I'm not too happy about this series of faq postings. Each individual
faq entry is too specialized to be useful if posted a propos of nothing.
Anno
------------------------------
Date: Mon, 04 Dec 2000 10:12:49 GMT
From: richard_dobson@my-deja.com
Subject: free database
Message-Id: <90fqmv$jt8$1@nnrp1.deja.com>
Hi, does anyone know of free database software available for win32. I
have looked into mySQL but there appears to be a license fee. I need to
put data into and retrieve from the database using perl cgi. Any other
tips would be appreciated. I will be downloading win32:ODBC
Thanks
Rich
Sent via Deja.com http://www.deja.com/
Before you buy.
------------------------------
Date: Mon, 04 Dec 2000 11:14:14 GMT
From: "Daniel B I" <bignat@mail.com>
Subject: Free simple counter with your own gifs!
Message-Id: <a0LW5.103040$k06.2804791@telenews.teleline.es>
I was looking many times for such a program. I am not mainly a
Perl programmer, but I nedeed it and there it is!
Enjoy it!
Daniel BI
=============
#!/usr/bin/perl
# This is a counter which uses your own digit gif files!
# You should put it in the cgi-bin directory, also with
# a file named "counter.dat" which should contain the
# counter's value. Then, in the html file, you have to
# insert a number of images. For example, if you want a
# three digit counter on your internet provider's site:
# <img src="cgi-bin/c.cgi?3"> # the number three is the
# <img src="cgi-bin/c.cgi?2"> # third digit from right to left
# <img src="cgi-bin/c.cgi?1"> # 2 = the second, 1 = the first
# don't forget to name the digit images to "0.gif", "1.gif" etc..
# and give the necessary file permissions under provider's hosting server
# Note: this program is a very simple one (but very useful, I needed
# one like this and I didn't find it on internet..) and it has a
# limitation and a 'pseudo' bug. Fixing this bug is beyound the purpose
# of a 'simple program'. If you need it, do it yourself! That is,
# the limitation is that you have to know how many digits you need. So,
# if you put too few digits in your page, only those will appear,
# although you may need more. The bug is that the 'incrementing' of the
# counter's value is made only when the first digit is loaded. Practically,
# when you have reached for example the number 19 and you increase it, you
# *may* see on the screen 29 instead of 20. The counter's value is well,
# but the way the digits appear is not controlled by this program. So,
# the first digit may be loaded (9 from '19' in our case) then the
# counter is increased to 20, so the second digit is loaded, that is '2'!!
# It goes to 29, instead of 20. It *may* happen. Don't worry, is not a
virus!
# It *may* happen (is not necessarily to happen) only when passing from 9
# to next value (9 - 10, 19 - 20, 29 -30, etc). On a local area it may
# happen often. But in internet it may be happening never (because of the
# lower connection speed). I tried it yet with an internet provider and it
# hadn't that error.
# So, this said, I hope you'll enjoy it!
# You are granted the right to copy, modify and spread
# this software all around the world...!.. blah blah blah..
# Daniel BI
print "Content-type: image/gif\n\n";
# First goes the HTTP header, of course
open (DATA,"<./counter.dat");
# Open data file, with the counter's value
binmode(DATA);
# oh... this is a good trick to go into binary mode,
# it took me several ours to figure it out!! what a pity..
$count = <DATA>; # put the counter in its container
close(DATA); # leave the file handle for other people
@num = split(//, $count); # put the digits in an array
$len=length($count); # figure out how many digits there are
$less=shift;
# get the info after that wheird "?" sign in the
#html call to cgi.. remember? first, second or third digit to print?
if ($less==1)
# well, I'm shy to tell you that here begins the 'limitation'..
# if this is the first digit to print, then
$count++; # increment the counter
open(DATA,">./counter.dat"); # open counter file in rewrite mode
flock(DATA, 2);
# lock it for a while.. (of course, dosen't work in windows version of
# perl, if you need it, comment this out and all of its family!..
print DATA $count; # put there the new counter
flock(DATA, 8);
# release the lock (dosent work with windows.. please remember this,
# I will not tell you every time!)
close(DATA); # flush the buffer
$count--; # return to the real number to be printed
}
if ($len-$less<0)
# if the digit index is '7' for exmple, and you have only 5 digits,
# what to do?!.. put there a great zero!
{$digit="0"}
else
{$digit = $num[$len-$less]}; # else, fetch the number to be printed
open (DATA,"<./".$digit.".gif"); # open the corresponding gif image
binmode(DATA); # please, read it in binary mode,
read(DATA,$myimg,14000,0); # now!
# ^^^^^ here, 14000 = max bytes of the greatest
# digit image file size, you should change that if you have
# custom greater images. hehe, you think
# it would work by just putting here $myimg = <DATA> ? .. no way!..
# I said "BINARY MODE".. and I said it many times until really obtaining it!
close(DATA); # flush the buffer
binmode(STDOUT);
# uffff.. another "one our trial trick"!.. just comment this out
# and you will know my trials and tribulations!..
print $myimg;
# well, it was so easy!.. now just print it !..
# happy end!
------------------------------
Date: Mon, 04 Dec 2000 02:16:06 -0800
From: Linc Madison <lincmad001@telecom-digest.zzn.com>
Subject: Re: Help with /\d+\s*(S+)/ Please
Message-Id: <041220000216066886%lincmad001@telecom-digest.zzn.com>
In article <3A2A7E10.7CDE682A@home.com>, Ned <ned911@home.com> wrote:
> I have read through the docs and faq but am still having problems. I
> am trying to sort a flat file by date which is the second field in
> the file, tab (|) seperated. So far I have November and December
> data (11, 12) and the line /\d+\s*(S+)/ is causing the Nov data to be
> sorted correctly (I'm using a descending sort) but the Dec data is
> being sorted last. The file runs from 11-15 through 12-1 which makes
> me believe the /\d+ line of code is sorting on the day not the whole
> string.
Insufficient information.
Give us a sample of your data and enough of your code (or a simplified
version of your code) to see your question in context. You also need to
show what output you expect as well as what output you actually get.
In particular, /\d+/ doesn't sort at all. It matches one or more digits.
/\d+\s*(S+)/ matches one or more digits, followed by zero or more
whitespace characters, followed by one or more capital S's. The
sequence of capital S's can be retrieved using the special $1 variable.
------------------------------
Date: Sun, 3 Dec 2000 21:22:53 -0500
From: tadmc@metronet.com (Tad McClellan)
Subject: Re: Help with /\d+\s*(S+)/ Please
Message-Id: <slrn92lvvt.jt8.tadmc@magna.metronet.com>
[ Please do not send stealth Cc'd email ]
Ned <ned911@home.com> wrote:
>See below. Appreciate the help.
>
>
>> Got any sample data that you want sorted?
I asked for these things:
Input data to be sorted
Short and complete code that is sorting "wrong"
Output data
What output you want instead of what you are getting
You gave me input data, but it does not show the problem! It
contains no December data.
You gave me short code, but not complete code (how did @files
get filled up?).
You did not give output data.
I'm giving up after this followup.
>Data: Name|Date|VacDay|SicDay|Comments
>
>Joe Smith|10-21-2000 09:35|1|0|Vacation
>Jane Smith|11-15-2000 10:35|0|1|Dr Appointment
>
>> >and the line /\d+\s*(S+)/ is causing the Nov data to be sorted
^^^
So that matches the month component of the date.
>> >correctly (I'm using a descending sort)
Because your code is ignoring the month component of the date.
You are sorting based on the day-year components (with a
hyphen at the beginning).
>> Got the code that does the sorting?
>
>@idx = ();
> for (@file) {
> ($item) = /\d+\s*(\S+)/;
$item gets the \S+ part. So for the data above you are sorting
on these substrings:
-21-2000
-15-2000
And it will fail horribly for:
Joe Smith 3rd|10-21-2000 09:35|1|0|Vacation
because you will then be sorting based on this substring:
rd|10-21-2000
> push @idx, uc($item);
> }
> @file = @file [sort{$idx[$b] cmp $idx[$a]}0..$#idx];
Something horrid has happened to your indenting. Please fix
the indenting.
That is an awfully strange way to do the sorting. It looks
like you are trying to do a case-insensitive sort. Why?
Are you expecting letters in the sort keys?
You have not mentioned any letters in your date format.
No need for the index sort anyway, you can just do a
case-insensitive sort the way perlfunc shows in the
description for sort().
But you don't need a case insensitive sort if there are
no letters, because case only affects letter characters.
You should probably be trying to get the numbers, so that
you can sort as numbers (<=>) instead of as strings (cmp).
Or normalize your data and use a string sort.
You just copied the code from somewhere without understanding
what it does or how it works.
It appears to not even be trying to do the same thing that
you need done...
>> December is *supposed* to come after November.
>>
>> Nothing is wrong.
>
>It is a descending sort - December should come before November.
Oh.
Well, I don't see December coming before November, because
there is no December in the data.
Oh well, have a fish as a parting gesture:
------------------------
#!/usr/bin/perl -w
use strict;
my @file = <DATA>;
@file = map { $_->[0] }
sort { $b->[3] <=> $a->[3] or # first by year
$b->[1] <=> $a->[1] or # then by month
$b->[2] <=> $a->[2] # then by day
}
map { [ $_, /.*?\|(\d+)-(\d+)-(\d+)/ ] } @file;
print for @file;
__DATA__
Joe Smith|10-21-2000 09:35|1|0|Vacation
Jill Smith 3rd|12-12-2000 09:35|1|0|Vacation
Jane Smith|11-15-2000 10:35|0|1|Dr Appointment
------------------------
Learn Programming.
Learn Perl.
--
Tad McClellan SGML consulting
tadmc@metronet.com Perl programming
Fort Worth, Texas
------------------------------
Date: Mon, 04 Dec 2000 09:08:05 GMT
From: tweber@abcdefg.com (Ted Weber)
Subject: Re: Help with sendmail
Message-Id: <V9JW5.2422$NN6.12910@newsfeed.slurp.net>
>post a small fragment of code that is failing and the readers
>of this group will have a much better chance of pointing out the
>problem.
OK, here we go and thanks for your help:
First, a snippet from the data def lib
###$mailserver = "sendmail"; #sendmail works everywhere unix'ish
$mailserver = "smtp"; # or smtp if you use smtp mailer.
$smtpserver = "smtp.skyenet.net"; # server name if you use SMTP
############# note the one not being used is remmed out.
Now the function code in the common.lib
(again, when I use sendmail, I get a script crash error. When I use the smtp
option, I get the error "Bad SMTP IP address in SENDEMAIL. (common.lib)' )
This code has been working fine for over a year until they started jacking
with our servers and mail servers last month.
sub sendemail
{
if ($mailserver eq "sendmail")
{
my($to)=$_[0]; @to=split('\0',$to);
my($from)=$_[1];
my($subject)=$_[2];
my($replyto) = $_[3];
my($themessage) = $_[4];
$remote = "sendmail";
open(S, "|$remote -t");
print S "To: $to[0]\n";
print S "From: $from\n";
print S "Subject: $subject\n";
print S "Reply-To: $from\n\n";
print S "$themessage\n";
print S "\n";
print S ".\n";
close (S);
}
else
{
use Socket;
$REMOTE=$smtpserver;
$TO=$_[0]; @TO=split('\0',$TO);
$FROM=$_[1];
$SUBJECT=$_[2];
$REPLYTO = $_[3];
$THEMESSAGE = $_[4];
if ($REMOTE =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/)
{
$addr = pack('C4', $1, $2, $3, $4);
}
else
{
&dieerror('Bad SMTP IP address in SENDEMAIL. (common.lib)');
}
$port = 25 unless $port;
$port = getservbyname($port,'tcp') if $port =~ /\D/;
$proto = getprotobyname('tcp');
socket(S, PF_INET, SOCK_STREAM, $proto) or die("Socket failed: $!");
$sockaddr = 'S n a4 x8'; # shouldn't this be in Socket.pm?
connect(S, pack($sockaddr, AF_INET, $port, $addr)) or die("Unable to
connect: $!");
select(S); $| = 1; select(STDOUT);
$a=<S>;
print S "HELO ${SERVERNAME}\n";
$a=<S>;
print S "MAIL FROM:<SMTPMAIL>\n";
$a=<S>;
print S "RCPT TO:<$TO[0]>\n";
$a=<S>;
if ($#TO > 0)
{
foreach (1..$#TO) { print S "RCPT TO: $TO[$_]\n";$a=<S>;
}
}
print S "DATA \n";
$a=<S>;
print S "To: $TO[0]\n";
if ($#TO > 0) {
foreach (1..$#TO)
{
print S "Cc: $TO[$_]\n";
}
}
print S "Subject: $SUBJECT\n";
print S "Reply-To: $REPLYTO\n";
# Print the body
print S "$THEMESSAGE\n";
print S ".\n";
$a=<S>;
print S "QUIT";
close (S);
}
}
------------------------------
Date: Mon, 4 Dec 2000 07:41:14 -0500
From: tadmc@metronet.com (Tad McClellan)
Subject: Re: How to do 'sort -u' with Perl for windows?
Message-Id: <slrn92n47a.kj2.tadmc@magna.metronet.com>
Bob Walton <bwalton@rochester.rr.com> wrote:
>DH wrote:
>> I would like to have the equivalent of Unix command 'sort -u' to run on
> @a=(11,8,2,3,4,5,6,7,8,5,8,9,8,10);
> my %h=map {$_,1} @a;
> my @s=sort {$a<=>$b} keys %h;
^^^
> print join ', ',@s;
That is not "sort -u".
That is "sort -u -n".
:-)
--
Tad McClellan SGML consulting
tadmc@metronet.com Perl programming
Fort Worth, Texas
------------------------------
Date: Mon, 4 Dec 2000 07:22:11 -0500
From: tadmc@metronet.com (Tad McClellan)
Subject: Re: How to do 'sort -u' with Perl for windows?
Message-Id: <slrn92n33j.khm.tadmc@magna.metronet.com>
DH <huyv@usa.net> wrote:
>
>I would like to have the equivalent of Unix command 'sort -u' to run on
>windows.
perl -ne "$h{$_}=1; END{ print sort keys %h}" filename
>Is it long to do it with Perl for Windows?
Is 45 characters "long"?
--
Tad McClellan SGML consulting
tadmc@metronet.com Perl programming
Fort Worth, Texas
------------------------------
Date: Mon, 04 Dec 2000 08:29:52 GMT
From: rgarciasuarez@free.fr (Rafael Garcia-Suarez)
Subject: Re: howto specify command line options
Message-Id: <slrn92mlhk.nk0.rgarciasuarez@rafael.kazibao.net>
paul wrote in comp.lang.perl.misc:
> hi all
>
> i have a question
>
> i would like to specify commandline options in a perl script
>
> for example ./test.pl -i <ip_addr> -h <host_name> etc etc
>
> but i cant seem to find info on how to setup the options -i, -h
What you want is not very clear, but perhaps you should look at the
Getopt::Std standard module.
--
# Rafael Garcia-Suarez / http://rgarciasuarez.free.fr/
------------------------------
Date: 4 Dec 2000 12:50:56 -0000
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: Loading of modules?
Message-Id: <90g3vg$vbo$1@lublin.zrz.tu-berlin.de>
Dan Sugalski <dan@tuatha.sidhe.org> wrote in comp.lang.perl.misc:
>Jason Timmins <jason@webfoundry.co.uk> wrote:
[...]
>> Is there an architectural overview of the interpreter on the web? I'm
>> interested in understand how it all works.
>
>Well, there's http://gisle.aas.no/perl/illguts/, but that's about it.
>Certainly nothing I know of that gets into details on perl's parser. (It
>scares folks almost as much as the regex engine, and with good reason... :)
The Camel (third edition) has an elaborate chapter about the compilation
process. In particular, the interleaved operation of compilation and
execution steps is explained in detail.
Anno
------------------------------
Date: Mon, 4 Dec 2000 13:29:42 +0100
From: "Stijn" <guppie84@hotmail.com>
Subject: mirroring
Message-Id: <90g2ck$19e4t$1@reader4.wxs.nl>
Hi,
I'm looking for a program, or a module which can facilitate mirroring sites.
i have links in the format:
www.whatever.com/file1
www.server.com/~whatever/file1
I want to discriminate between domains and subdomains. I've seen robots that
do things
kind of thing, but they all seem to have 'static' depths, is there a way to
deal with this on
a more flexible level?
Stijn.
------------------------------
Date: Sun, 3 Dec 2000 21:31:12 -0500
From: tadmc@metronet.com (Tad McClellan)
Subject: Re: Regex multiline html
Message-Id: <slrn92m0fg.jt8.tadmc@magna.metronet.com>
Tony <tony@bigpond.com> wrote:
>Have been trying to remove five lines in one chunk from
>html pages.
>Have looked at the
>/m, /s, modifiers.
A multiline pattern is half of what is needed for a multiline
pattern match. The other half is a multiline string to
match against.
>Would appreciate if someone might know
>where I am going wrong here?
You do not have any multiline strings to match against.
The input operator reads a single line at a time.
You need to arrange to have a multiline string if you want
a multiline pattern match to succeed :-)
--
Tad McClellan SGML consulting
tadmc@metronet.com Perl programming
Fort Worth, Texas
------------------------------
Date: 4 Dec 2000 08:48:45 GMT
From: ebohlman@omsdev.com (Eric Bohlman)
Subject: Re: regex prob: /(.*)-$1/ in perl 5.6
Message-Id: <90flpd$t1o$1@bob.news.rcn.net>
mrsmith01@my-deja.com wrote:
> I've just upgraded perl 5.005 => 5.6, and now
> have got a bunch of broken code to fix up. One
> such problem is using $1, $2's etc within //. For
> example, when reading "SGML" into a hash:
> if( $linein =~ m{<(\w+)>(.*)</$1>} ) { $sgml{$1}
> = $2 }
> eg. "<name>Fred</name>" => $sgml{name}
> = "Fred"
> Obviously this used to work, but now doesn't
> match. How can i do it in perl 5.6?
Backreferences in regular expressions have always been represented as
\digit, not $digit. In fact, I'm rather surprised that your previous code
worked at all, because the $digit variables are not updated until the
complete expression successfully matches (a common trap is to use the
$digit variables without checking that the match succeeded; if the match
fails, the $digit variables will still be set to their previous values).
------------------------------
Date: Mon, 04 Dec 2000 11:49:37 GMT
From: richard_papworth@my-deja.com
Subject: Runtime object initialisation (edited!!)
Message-Id: <90g0cg$nr5$1@nnrp1.deja.com>
Ooops, the my original posting seems to have got a bit garbled... here
it is without the dross...
This is my first foray into the world of Perl objects and I'm in need of
help....
I'm writing a wrapper round a relational database. This wrapper
follows the singleton pattern, establishing a database
connection then fielding requests to the database through a get/set
API, primarily, mapping table structures (which the wrapper knows
about) to corresponding object structures. There's collection of
objects which work as expected when called from an application in which
the class package name is known
at compile time. However,within the wrapper I may not know the name of
the class to be initialised until runtime and I'm unable to initialise
these objects 'on-the-fly' (by
placing the call to new() in a block with no strict 'refs' set, and
building the constructor call from strings passed into the method). It
appears that while I can call the constructor
for the wrapper for the Offspring class, chaining of constructor calls
isn't taking place due to an inability to locate the parent class
(called via class ->
SUPER::new(@_) -- see sample code below). I've got a workaround which
involves harcoding the object construction within the get/set method
then passing this object
around and using it to create objects as necessary. However, I'd like
to know why my first approach doesn't work. Any suggestions??
#----------------------------------------------------------------------
package Base;
use strict;
# constructor
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = {};
bless($self, $class);
return $self;
}
# return xml representation
sub to_xml {
my $self = shift;
my $xml = ...some processing
return $xml;
}
1;
#---------------------------------------------------------------------
package Offspring;
# Needs access to the SUPER class
use Base;
use strict;
use vars qw (@ISA);
@ISA = qw( Base );
# Specify fields and order as Class parameter
my @fields = ('ID','Surname','Fornames');
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = $class->SUPER::new(@_);
$self -> _initialise(@_) if (@_);
return $self;
}
sub _initialise {
my $self = shift;
my $param = shift;
die "Extra parameters passed to object contructor" if (@_); die
"Expecting hash reference during object construction" unless
(ref($param) eq 'HASH');
# store a reference to the class data
$self->{'_Fields'} = \@fields;
foreach my $a_field (@fields){
$self->{$a_field} = $param->{$a_field};
}
}
1;
#-------------------------------------------------------------------
package DB_Wrapper;
# Load required modules
use DBI;
use English;
use strict;
# Model Classes
use Base;
use Offspring;
#
# Class variables
#
my .....
#
# Constructor
#
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;# May initialise using a ref
my $self = {};
bless($self, $class);
$self -> _initialise(@_); # Call _initialise with
remaining arguments
return $self;
}
#
# get_offspring
# given a hash of parameters, returns any corresponding
# objects in the database
#
sub get_offspring {
# Do database stuff...
# have record(s)... covert to objects
my $an_object = $self -> new_object('Offspring', \%parameters);
return $an_object
}
#
# new_object
#
#
sub new_object {
my ($self, $class, $parameters) = @_;
my $object = $class -> new($parameters);
# avoid compile time errors with use strict pragma by
initialising in a block
{
no strict 'refs';
# Base constructor isn't being called !!!!!!!!!!!!!!!
$object = &{$classname . "::" . 'new'}('$parameters'); }
return $object;
}
1;
Sent via Deja.com http://www.deja.com/
Before you buy.
------------------------------
Date: Mon, 04 Dec 2000 11:37:58 GMT
From: richard_papworth@my-deja.com
Subject: Runtime object initialisation
Message-Id: <90fvml$ndd$1@nnrp1.deja.com>
This is my first foray into the world of Perl objects and I'm in need of
help....
I'm writing a wrapper round a relational database. This wrapper
follows the singleton pattern, establishing a database
connection then fielding requests to the database through a get/set API,
primarily, mapping table structures (which the wrapper knows
about) to corresponding object structures. There's collection of objects
which work as expected when called from an application in which the
class package name is known at compile time. However,within the wrapper
I may not know the name of the class to be initialised until runtime and
I'm unable to initialise these objects 'on-the-fly' (by placing the
call to new() in a block with no strict 'refs' set, and building the
constructor call from strings passed into the method). It appears that
while I can call the constructor for the wrapper for the Offspring
class, chaining of constructor calls isn't taking place due to an
inability to locate the parent class (called via class ->
SUPER::new(@_) -- see sample code below). I've got a workaround which
involves harcoding the object construction within the get/set method
then passing this object around and using it to create objects as
necessary. However, I'd like to know why my first approach doesn't work.
Any suggestions??
#----------------------------------------------------------------------
package Base;
use strict;
# constructor
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = {};
bless($self, $class);
return $self;
}
# return xml representation
sub to_xml {
my $self = shift;
my $xml = ...some processing
return $xml;
}
1;
#---------------------------------------------------------------------
package Offspring;
# An author object in ARK
# Needs access to the SUPER class
use Base;
use strict;
use vars qw (@ISA);
@ISA = qw( Base );
# Specify fields and order as Class parameter
my @fields = ('ID','Surname','Fornames');
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = $class->SUPER::new(@_);
$self -> _initialise(@_) if (@_);
return $self;
}
sub _initialise {
my $self = shift;
my $param = shift;
die "Extra parameters passed to object contructor" if (@_);
die "Expecting hash reference during object construction" unless
(ref($param) eq 'HASH');
# store a reference to the class data
$self->{'_Fields'} = \@fields;
foreach my $a_field (@fields){
$self->{$a_field} = $param->{$a_field};
}
}
1;
#-------------------------------------------------------------------
package DB_Wrapper;
# Load required modules
use DBI;
use English;
use strict;
# Model Classes
use Base;
use Offspring;
#
# Class variables
#
my .....
#
# Constructor
#
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;# May initialise using a ref
my $self = {};
bless($self, $class);
$self -> _initialise(@_); # Call _initialise with
remaining arguments
return $self;
}
#
# get_offspring
# given a hash of parameters, returns any corresponding
# objects in the database
#
sub get_offspring {
.
.
.
Database stuff
.
.
.
# have record(s)... covert to objects
my $an_object = $self -> new_object('Offspring', \%parameters);
return $an_object
}
#
# new_object
#
#
sub new_object {
my ($self, $class, $parameters) = @_;
my $object = $class -> new($parameters);
# avoid compile time errors with use strict pragma by
initialising in a block
{
no strict 'refs';
# Base constructor isn't being called !!!!!!!!!!!!!!!
$object = &{$classname . "::" . 'new'}('$parameters');
}
return $object;
}
1;
#
# new_object
#
#
sub new_object {
#
# new_object
#
#
sub new_object {
my ($self, $class, $parameters) = @_;
my $object = $class -> new($parameters);
# avoid compile time errors with use strict pragma by
initialising in a block
{
no strict 'refs';
# Base constructor isn't being called !!!!!!!!!!!!!!!
$object = &{$classname . "::" . 'new'}('$parameters');
}
return $object;
}
1;
my $object = $class -> new($parameters);
# avoid compile time errors with use strict pragma by
initialising in a block
{
no strict 'refs';
# Base constructor isn't being called !!!!!!!!!!!!!!!
$object = &{$classname . "::" . 'new'}('$parameters');
}
return $object;
}
1;
Sent via Deja.com http://www.deja.com/
Before you buy.
------------------------------
Date: Sun, 3 Dec 2000 21:26:35 -0500
From: tadmc@metronet.com (Tad McClellan)
Subject: Re: strings with a minus
Message-Id: <slrn92m06r.jt8.tadmc@magna.metronet.com>
John Boy Walton <johngros@Spam.bigpond.net.au> wrote:
>Sorry to be so long with this but probs with my ISP had me shutout of news.
>"Tad McClellan" <tadmc@metronet.com> wrote in message
>news:slrn92ga8i.as9.tadmc@magna.metronet.com...
Do not expect me to read Jeopardy quoted posts.
I did not read the article I'm following up to, maybe someone
else can help with whatever it was about.
--
Tad McClellan SGML consulting
tadmc@metronet.com Perl programming
Fort Worth, Texas
------------------------------
Date: 4 Dec 2000 13:05:11 GMT
From: "M.I. Planchant" <M.I.Planchant@ncl.ac.uk>
Subject: Submitting a file via a form
Message-Id: <90g4q7$s1i$1@ucsnew1.ncl.ac.uk>
I wonder if anyone can help me with a problem that im having. Im trying to
create a web page that contains a form. The form has three fields. 2 text and
one which is of type file.
I have written a perl program which uses a text file such as the one that would
be submitted as the source of input. What I need to do, is to run the cgi
program when the submit button is clicked on and for the file which has been submitted
to be processed and results shown. How do I go about doing this? Ive done the form post
stuff for the text fields but how can I do it for the file input?
Thanks in advance,
Matt.
------------------------------
Date: Mon, 4 Dec 2000 13:27:17 +0100
From: "matteo" <dsdf@sdfd.com>
Subject: term ansi color
Message-Id: <3a2b8769@post.usenet.com>
**** Post for FREE via your newsreader at post.usenet.com ****
I've tried to usa an example from the perl documentation of
term ansi color
use Term::ANSIColor;
print color 'bold blue';
print "This text is bold blue.\n";
print color 'reset';
print "This text is normal.\n";
print colored ("Yellow on magenta.\n", 'yellow on_magenta');
print "This text is normal.\n";
use Term::ANSIColor qw(:constants);
print BOLD, BLUE, "This text is in bold blue.\n", RESET;
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
print BOLD BLUE "This text is in bold blue.\n";
print "This text is normal.\n";
in windows prompt I obtain this (no color, only bw)
?[1;34mThis text is bold blue.
?[0mThis text is normal.
?[33;45mYellow on magenta.
?[0mThis text is normal.
?[1m?[34mThis text is in bold blue.
?[0m?[1m?[34mThis text is in bold blue.
?[0m?[0mThis text is normal.
what to do?
thanks
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
*** Usenet.com - The #1 Usenet Newsgroup Service on The Planet! ***
http://www.usenet.com
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
------------------------------
Date: Mon, 04 Dec 2000 08:27:24 GMT
From: uuscr@my-deja.com
Subject: Re: User quota check via web
Message-Id: <90fkha$fva$1@nnrp1.deja.com>
Quota module uses quotactl system call. Users other than root can only
see his own quota limits. Check under which user id cgi script is
running and if it is equal to the user id the quotas are supposed to be
fetched for. It would also be helpfull if you specify an OS environment.
In article <OjBW5.41610$GU1.5286@news.siol.net>,
info@sz-brkini.si (Brcin) wrote:
> I'm writing a script for my users to see their disk quota via a web
> browser. I use the Quota module for Perl. But when a user tries to see
his
> quota, he gets "Not privileged".
>
> Any help would be appreciated.
> - Brcin
>
>
Sent via Deja.com http://www.deja.com/
Before you buy.
------------------------------
Date: Mon, 04 Dec 2000 13:06:43 GMT
From: strawin@neptunenet.com (Stra)
Subject: Re: User quota check via web
Message-Id: <DFMW5.42171$GU1.6109@news.siol.net>
I have Slackware 7.0, the script is owned by root. I would like my users to
log in via web and then check their quota with this script. Can you guys
point me to a script like this?
uuscr@my-deja.com wrote in <90fkha$fva$1@nnrp1.deja.com>:
>Quota module uses quotactl system call. Users other than root can only
>see his own quota limits. Check under which user id cgi script is
>running and if it is equal to the user id the quotas are supposed to be
>fetched for. It would also be helpfull if you specify an OS environment.
------------------------------
Date: 4 Dec 2000 09:19:20 GMT
From: Ilmari Karonen <iltzu@sci.invalid>
Subject: Re: Using goto
Message-Id: <975921166.25505@itz.pp.sci.fi>
In article <3a2b2827.190124081@news.escape.com>, Bart Lidofsky wrote:
>On Sat, 2 Dec 2000 09:34:09 -0500, tadmc@metronet.com (Tad McClellan)
>wrote:
>>
>>Gotos are "bad" in any language.
>
> That sure puts a crimp in assembly language programming....
Well, assuming subroutine calls don't count as gotos, you could always
write everything recursively..
Seriously, there are worse things that can be done in assembly than
random gotos. Besides the obvious -- self-modifying code -- one that
comes to mind is manually pushing addresses onto the call stack so
that later returns will jump there. (BTDT, the binary is still on my
web pages.)
--
Ilmari Karonen -- http://www.sci.fi/~iltzu/
"Get real! This is a discussion group, not a helpdesk. You post
something, we discuss its implications. If the discussion happens to
answer a question you've asked, that's incidental." -- nobull in clpm
------------------------------
Date: 16 Sep 99 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 16 Sep 99)
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: The mail to news gateway, and thus the ability to submit articles
| through this service to the newsgroup, has been removed. I do not have
| time to individually vet each article to make sure that someone isn't
| abusing the service, and I no longer have any desire to waste my time
| dealing with the campus admins when some fool complains to them about an
| article that has come through the gateway instead of complaining
| to the source.
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 V9 Issue 5024
**************************************