[17481] in Perl-Users-Digest
Perl-Users Digest, Issue: 4901 Volume: 9
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Thu Nov 16 09:05:38 2000
Date: Thu, 16 Nov 2000 06:05:12 -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: <974383512-v9-i4901@ruby.oce.orst.edu>
Content-Type: text
Perl-Users Digest Thu, 16 Nov 2000 Volume: 9 Number: 4901
Today's topics:
about .htaccess <sam@cplhk.com>
can't load libperl.so <kmlim@cheerful.com>
Re: cookies fetch returns an empty hash <eugene@sanet.ge>
Re: cookies fetch returns an empty hash (Rafael Garcia-Suarez)
Re: cookies fetch returns an empty hash <eugene@sanet.ge>
Re: Date <dave@dave.org.uk>
Re: Date (Tom Christiansen)
Re: Delete empty directories (Martien Verbruggen)
Device driver via perl? <meisl@amvt.tu-graz.ac.at>
Difference between recv() and read() qlos@my-deja.com
Re: display shell alias in perl? <tsailipu@home.com>
Do I need Java to redirect form parameters? (ntl)
Re: Exporting variables from modules <bugfixxer@yahoo.com>
How to get client address from accept() qlos@my-deja.com
Re: How to get client address from accept() nobull@mail.com
Re: How to get client address from accept() (Garry Williams)
Re: How to get client address from accept() <nickco3@yahoo.co.uk>
How to read mail (Anders Hertz)
Re: How to read mail (Rafael Garcia-Suarez)
Re: How to read mail nobull@mail.com
Re: I need a fork example, please <jonasbn@wanadoo.dk>
Re: IP geography <nospam.newton@gmx.li>
libperl.so <kmlim@cheerful.com>
libperl.so <kmlim@cheerful.com>
libperl.so <kmlim@cheerful.com>
Re: libperl.so (Martien Verbruggen)
Re: Please tell me why this code is wrong (ActiveState (Anno Siegel)
Re: Please tell me why this code is wrong (ActiveState (Logan Shaw)
Re: question about reusing a variable from a regex <w.berg@NOSPAMPLEASEsamsom.nl>
Re: raw ethernet (Martien Verbruggen)
Re: regular expression for jpg images <nospam.newton@gmx.li>
Re: sleep & $anything question (Neil Cherry)
Re: sleep & $anything question <geoff-at-farmline-dot-com@127.0.0.1>
Re: sleep & $anything question <geoff-at-farmline-dot-com@127.0.0.1>
Re: Sort files by date <johnlin@chttl.com.tw>
Re: Using Perl OLE to edit acrobat annotations. (Aandi Inston)
Where are param and redirect defined <sladb69@magma.ca>
Win32::Process, loading file in already active editor (Rob van Strien)
Digest Administrivia (Last modified: 16 Sep 99) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Thu, 16 Nov 2000 18:34:06 +0800
From: "Sam Tsui" <sam@cplhk.com>
Subject: about .htaccess
Message-Id: <8v0d6o$p25$1@horn.hk.diyixian.com>
Hi,
I have several question about .htaccess
1. Is it possible to update the password of .htaccess by CGI from Web?
2. If yes, How? How could I dump the password to .htaccess?
2. If yes, must my CGI run as 'root'?
Thanks for any helps, clues very very much..
and thanks to people looking into my post.
------------------------------
Date: Thu, 16 Nov 2000 20:12:49 +0800
From: blue <kmlim@cheerful.com>
Subject: can't load libperl.so
Message-Id: <3A13CF41.2E0B093F@cheerful.com>
I am using Perl5.6 and INN2.2.3
I obtained this error:
/var/news/bin/innd: can't load library 'libperl.so' when running INN
(Usenet server)
test# ldd /var/news/bin/innd
libperl.so => not found
libdl.so => /shlib/libdl.so (0x18090000)
libm.so => /shlib/libm.so.0.0 (0x18094000)
libc.so.1 => /shlib/libc.so.1 (0x180a6000)
libutil.so => /shlib/libutil.so.0.0 (0x1816e000)
libgcc.so.1 => /shlib/libgcc.so.1 (0x1817c000)
Pls help
--lim
------------------------------
Date: Thu, 16 Nov 2000 13:24:59 GMT
From: Eugene Vekua <eugene@sanet.ge>
Subject: Re: cookies fetch returns an empty hash
Message-Id: <8v0n77$8dl$1@nnrp1.deja.com>
In article <slrn915g4i.1cm.rgarciasuarez@rafael.kazibao.net>,
rgarciasuarez@free.fr (Rafael Garcia-Suarez) wrote:
> >
> >%cookies = fetch CGI::Cookie;
> >
> >but in result I am getting an empty hash - scalar keys %cookies
shows 0
> >hash members.
>
> Are there any cookies transmitted in the request ? You can check this
by
> examining the contents of $ENV{'HTTP_COOKIE'}. If it's empty, the
> problem is with the code that sets the cookies.
HTTP_COOKIE is empty. But based on my knowledge I do not see problem
with cookie set code. Checking the browser enviroment after execution
of the code I can see that the cookie has been accepted by the client.
And seems it is not different from the other cookies in the list.
my $c = new CGI::Cookie(-name => 'sessinfo',
-value => $cyphertext,
-expires => '+3M');
print "Set-Cookie: $c\n";
print "Status: 302\r\n";
print "Location: /config.cgi\r\n";
print "Content-Type: text/html\n\n";
in config.cgi I am doing fetch and it returns an empty hash. :-(
Eugene
--
--------------
Eugene Vekua -- SANET
http://georgia.net.ge/evhome
Sent via Deja.com http://www.deja.com/
Before you buy.
------------------------------
Date: Thu, 16 Nov 2000 13:47:21 GMT
From: rgarciasuarez@free.fr (Rafael Garcia-Suarez)
Subject: Re: cookies fetch returns an empty hash
Message-Id: <slrn917pc6.3fa.rgarciasuarez@rafael.kazibao.net>
Eugene Vekua wrote in comp.lang.perl.misc:
>In article <slrn915g4i.1cm.rgarciasuarez@rafael.kazibao.net>,
> rgarciasuarez@free.fr (Rafael Garcia-Suarez) wrote:
>> >
>> >%cookies = fetch CGI::Cookie;
>> >
>> >but in result I am getting an empty hash - scalar keys %cookies
>shows 0
>> >hash members.
>>
>> Are there any cookies transmitted in the request ? You can check this
>by
>> examining the contents of $ENV{'HTTP_COOKIE'}. If it's empty, the
>> problem is with the code that sets the cookies.
>
>HTTP_COOKIE is empty.
Thus the browser does not send the cookie back to the server.
>But based on my knowledge I do not see problem
>with cookie set code. Checking the browser enviroment after execution
>of the code I can see that the cookie has been accepted by the client.
>And seems it is not different from the other cookies in the list.
>
>my $c = new CGI::Cookie(-name => 'sessinfo',
> -value => $cyphertext,
> -expires => '+3M');
>print "Set-Cookie: $c\n";
>print "Status: 302\r\n";
>print "Location: /config.cgi\r\n";
>print "Content-Type: text/html\n\n";
I recall that some browsers have problems with accepting cookies with a
redirection request. Besides this, there are two problems in the
response of your script :
- the Location: header should give a full URL (http://.../config.cgi)
- the Content-Type: header should not appear in a redirection request.
--
# Rafael Garcia-Suarez / http://rgarciasuarez.free.fr/
------------------------------
Date: Thu, 16 Nov 2000 13:45:54 GMT
From: Eugene Vekua <eugene@sanet.ge>
Subject: Re: cookies fetch returns an empty hash
Message-Id: <8v0oei$9eh$1@nnrp1.deja.com>
In article <slrn915g4i.1cm.rgarciasuarez@rafael.kazibao.net>,
rgarciasuarez@free.fr (Rafael Garcia-Suarez) wrote:
> examining the contents of $ENV{'HTTP_COOKIE'}. If it's empty, the
> problem is with the code that sets the cookies.
I am using f.e 'auth.cgi' to set cookie. If I am checking HTTP_COOKIE
from this 'auth.cgi' it returns correct value, but after redirection
to 'config.cgi' it returns nothing.
Is cookie somehow tide to the source cgi?
Eugene.
--
--------------
Eugene Vekua -- SANET
http://georgia.net.ge/evhome
Sent via Deja.com http://www.deja.com/
Before you buy.
------------------------------
Date: Thu, 16 Nov 2000 10:49:17 -0000
From: "Dave Cross" <dave@dave.org.uk>
Subject: Re: Date
Message-Id: <8v0e5f$6rk$1@taliesin.netcom.net.uk>
<ameen @ dausha . net (Ameen Dausha)> wrote in message
news:3a134ecd.105702146@news...
> On Wed, 15 Nov 2000 14:16:31 -0000, "Dave Cross" <dave@dave.org.uk>
> spat:
>
> >Let's see what the author Date::Manip has to say on the subject (from
> >perldoc Date::Manip):
> >
> >"Is Date::Manip the one you should be using? In my opinion, the answer is
no
> >about 90% of the time."
>
> I looked at these documents:
> http://search.cpan.org/doc/SBECK/DateManip-5.39/README
> http://www.engelschall.com/ar/perldoc/pages/module/Date::Manip.html
>
> Nothing containing this. As I lack the module in this environment, I
> will have to check at work tomorrow.
It's in <http://search.cpan.org/doc/SBECK/DateManip-5.39/Manip.pod> in a
section clearly entitled "SHOULD I USE DATE::MANIP".
> >Let's see how really difficult it is with localtime:
> >
> >my @now = (localtime)[3 .. 5];
> >my $date = sprintf('%02d/%02d%0d2', ++$now[2], $now[1], $now[3] % 100);
> >
> >Doesn't look that tricky to me.
>
> Dave, I don't mean to be a pain, but, I tried your solution--by
> cutting and pasting into a test script. Here is the script I used:
[snip discussion of embarassing bugs in my code]
Yes, there were three bugs in my script. I omitted the second '/' from the
output, I 'munged' the sprintf output template and for some reason I was
assuming that the @now array was indexed from 1! (Memo to self: don't post
untested code to clpm before first cup of coffee - in fact, don't post
untested code to clpm at all)
The script should be:
my @now = (localtime)[3 .. 5];
my $date = sprintf('%02d/%02d/%02d', ++$now[1], $now[0], $now[2] % 100);
print "Date=>$date<=\n";
> >I've benchmarked similar solutions, comparing localtime with Date::Manip
and
> >have found the localtime solution to be up to 30 times faster.
>
> I received a private email with a similar assertion, but I would like
> to see benchmark data. Since my personal web host provider lacks
> Date::Manip I will have to do this at work. I will run the command I
> mentioned earlier in this thread 1 million times and tally the time. I
> will also do the same with your script and tally that time. I am
> curious to see the duration of both since I'm not sure of the timing.
Here's my script comparing localtime, POSIX::strftime and
Date::Manip::DateCalc.
(Note that I haven't included the module load time in the comparison)
#!/usr/local/bin/perl -w
use strict;
use Benchmark;
use Date::Manip;
use POSIX 'strftime';
sub builtin {
my @now = (localtime)[3 .. 5];
return sprintf("%02d/%02d/%02d", ++$now[1], $now[0], $now[2] % 100);
}
sub posix {
return strftime('%m/%d/%y', localtime);
}
sub date_man {
return &DateCalc('today', '%m/%d/%y');
}
timethese(5000, { builtin => \&builtin,
posix => \&posix,
date_man => \&date_man });
And here are the results from a typical run:
Benchmark: timing 5000 iterations of builtin, date_man, posix...
builtin: 4 wallclock secs ( 3.12 usr + 0.03 sys = 3.15 CPU)
date_man: 301 wallclock secs (266.78 usr 0.11 sys + 0.01 cusr 0.05 csys
= 0.00 CPU)
posix: 5 wallclock secs ( 4.43 usr + 0.05 sys = 4.48 CPU)
Pretty conclusive stuff, I hope you'll agree. I thought it was 30 times
faster, but on this test it seems to be 75 times faster!
> But, if you're only going to do this once, why worry about jiffies?
> After all, how many times are you going to want to know what the
> month/day/year stamp for "today" is.
Potentially quite a lot if you're writing timestamps into a log file or
something like that.
hth,
Dave...
------------------------------
Date: 16 Nov 2000 06:36:05 -0700
From: tchrist@perl.com (Tom Christiansen)
Subject: Re: Date
Message-Id: <3a13e2c5@cs.colorado.edu>
In article <3a1355bf.107481217@news>,
>>>use Date::Manip;
>>>$today = &DateCalc("today", "%m/%d/%y");
>>
>>Data::Manip is overkill, though. It's everything, and then the kitchen
>>sink. It'll slow your program down because it's a behemoth.
>
>Please provide calculated benchmarks. As I state further down in the
>thread, I shall endeavor to do so tomorrow and report to this thread
>my findings. I don't doubt that turning on a whole package can be a
>bit cumbersome, but what is the performance loss compared to the
>simplicity of the code? If you note in my follow-up thread, the faster
>(and/or easier) solution may not be worth it.
>
>>Why not use a simple localtime() solution -- which would require you to
>>KNOW about the return values it provides! -- or use something like the
>>POSIX::strftime() function?
>
>I remember reading somewhere ("Perl Cookbook," perhaps?) that POSIX
>was bad and so have never used it.
I should very much like to see the quote there. This is hearsay.
Don't spread rumors.
>But, since you use it because it is
>faster than Date::Manip, please provide the benchmark.
Oh, do not be silly. The Date::Manip behemoth is not a standard module.
POSIX is. And localtime doesn't even require any modules.
% perl -e 'system("ps v$$"); eval "use POSIX qw(strftime)"; system("ps v$$");'
PID STAT TIME SL RE PAGEIN VSZ RSS LIM TSIZ %CPU %MEM COMMAND
18814 S+ 0:00.02 0 0 0 736 780 116464 628 0.0 0.6 perl -e s
PID STAT TIME SL RE PAGEIN VSZ RSS LIM TSIZ %CPU %MEM COMMAND
18814 S+ 0:00.09 0 0 0 1084 1360 116464 628 0.0 1.0 perl -e s
% perl -e 'system("ps v$$"); eval "use Date::Manip"; system("ps v$$");'
PID STAT TIME SL RE PAGEIN VSZ RSS LIM TSIZ %CPU %MEM COMMAND
25546 S+ 0:00.02 0 0 0 736 780 116464 628 0.0 0.6 perl -e s
PID STAT TIME SL RE PAGEIN VSZ RSS LIM TSIZ %CPU %MEM COMMAND
25546 S+ 0:00.78 0 0 0 3588 3860 116464 628 0.0 3.0 perl -e s
That is incredibly horrible. You just paid a bonus 2.5M more for that
module. And this is a svelt BSD system. Imagine it on Slwolaris!
The Camel has these examples (truncated):
use POSIX qw(strftime);
$now_string = strftime "%a %b %e %H:%M:%S %Y", gmtime;
strftime(I<fmt>, I<sec>, I<min>, I<hour>, I<mday>, I<mon>, I<year>,
$str = POSIX::strftime("%A, %B %d, %Y", 0, 0, 0, 12,
$datestr = strftime("%Y-%m-%d", localtime);
$datestr = strftime("%A %D", localtime);
The Ram has these examples (truncated):
use POSIX qw(strftime);
print strftime "%Y-%m-%d\n", localtime;
use POSIX qw(strftime);
$STRING = strftime($FORMAT, $SECONDS, $MINUTES, $HOUR,
use POSIX qw(strftime);
print "strftime gives: ", strftime("%A %D", localtime($time)), "\n";
use POSIX qw(strftime);
print strftime("<P>Last script update: %c (%Z)\n", localtime($raw_time));
But really, localtime() is the right answer.
--tom
------------------------------
Date: Thu, 16 Nov 2000 21:07:41 +1100
From: mgjv@tradingpost.com.au (Martien Verbruggen)
Subject: Re: Delete empty directories
Message-Id: <slrn917cfd.6sn.mgjv@martien.heliotrope.home>
On Wed, 15 Nov 2000 14:17:21 GMT,
Bart Lateur <bart.lateur@skynet.be> wrote:
> Bart Lateur wrote:
>
>> Recursively scan through a directory tree (using File::Find), and
>> delete all subdirectories that contain no files, but only empty
>> subdirectories.
>
> I think I wasn't clear enough in my description. If a directory /a/b
> only contains empty subdirectories /a/b/c and /a/b/d, then all three
> should be removed. File::Find traverses top-down, first it visits /a/b
> and only then /a/b/c etc. But deleting directories must happen
> bottom-up, deepest directory first.
# cat foo.pl
#!/usr/local/bin/perl -wl
use strict;
use File::Find;
finddepth (
{ wanted => sub { return unless -d; rmdir }, no_chdir => 1}, 'a');
# mkdir -p a/b/c/d/e
# mkdir -p a/b/c2/d2/e2
# mkdir -p a/b/c2/d3/e3
# touch a/b/foo
# find a
a
a/b
a/b/c
a/b/c/d
a/b/c/d/e
a/b/c2
a/b/c2/d2
a/b/c2/d2/e2
a/b/c2/d3
a/b/c2/d3/e3
a/b/foo
# ./foo.pl
# find a
a
a/b
a/b/foo
#
Martien
--
Martien Verbruggen |
Interactive Media Division | The world is complex; sendmail.cf
Commercial Dynamics Pty. Ltd. | reflects this.
NSW, Australia |
------------------------------
Date: 16 Nov 2000 11:45:54 +0100
From: Christian Meisl <meisl@amvt.tu-graz.ac.at>
Subject: Device driver via perl?
Message-Id: <m3snosxkil.fsf@famvtpc59.tu-graz.ac.at>
I have an interface card and a small c++ program that tests the card:
#include <stdio.h>
#include <unistd.h>
#include <asm/io.h>
#define adr 0x0300
int main()
{
iopl(3);
outb(128,adr+3);
outb(155,adr+7);
outb(255,adr);
outb(255,adr+1);
}
The two "255" values are the codes for the actions of the card and
should be variable.
Now I would like to write a simple Perl/Tk program that offers 16
switches (one for each bit of the adr/adr+1 word) and calls the above
code (that should be rewritten in Perl, as well).
Is that possible, and how can I do that?
Thanks for any suggestions (even any RTFM!),
best regards,
Christian
--
Christian Meisl <meisl@amvt.tu-graz.ac.at> www.amft.tu-graz.ac.at
Inst. f. Apparatebau, Mech. Verfahrenstechnik und Feuerungstechnik
------- I think there's a world market for about five computers --------
PGP fingerprint: DF48 2503 0411 F0EF 149C 851B 1EF0 72B9 78B6 034A
------------------------------
Date: Thu, 16 Nov 2000 09:28:06 GMT
From: qlos@my-deja.com
Subject: Difference between recv() and read()
Message-Id: <8v09b1$ugn$1@nnrp1.deja.com>
Hi there,
What is the difference between functions recv() and read()? In my
program I can't read socket using recv(). It gets nothing. When use read
() everything looks be fine.
thanx a lot
qlos
Sent via Deja.com http://www.deja.com/
Before you buy.
------------------------------
Date: Thu, 16 Nov 2000 09:21:39 GMT
From: "Philip Tsai" <tsailipu@home.com>
Subject: Re: display shell alias in perl?
Message-Id: <DGNQ5.428132$i5.7392936@news1.frmt1.sfba.home.com>
Hi,
Thanks for all your replies on this matter. It was discouraging to find out
that one can't really do that in Perl.
QM: I was trying to read an alias already set in the shell. I tried
eval `perl -e 'print "alias xyz banner perl"'` to no avail, either.
I pretty much gave up on this (Yes, as some posters indicated, if I define
all aliases in some file, e.g. .alias, instead of .cshrc or .tcshrc, then
there is a way around it -- but not all client users are going to have that
alias file ready though ).
Thanks again!
Philip
"Quantum Mechanic" <quantum_mechanic@my-deja.com> wrote in message
news:8us6fo$jht$1@nnrp1.deja.com...
> In article <8uqd9g$4mv$1@nnrp1.deja.com>,
> Quantum Mechanic <quantum_mechanic@my-deja.com> wrote:
> > In article <V9XP5.388$xb1.21276@eagle.america.net>,
> > garry@zvolve.com wrote:
> > > On 13 Nov 2000 18:21:05 +0000, nobull@mail.com <nobull@mail.com>
> > wrote:
> > > >"Philip Tsai" <tsailipu@home.com> writes:
> > > >
> > > >> This looks to be a simple operation yet I spent hours reading
> > documentation
> > > >> and searching using different combinations of keywords on
> > www.perl.com,
> > > >> google and other search engines to no avail: how can one assign
> > the value
> > > >> of a shell "alias [some alias name]" inside a Perl program?
> > > >
> > > >You can't.
> > > >
> > > >This is covered by the FAQ: ...
> > > >
> > > >The aliases are part of the shell environment (although they are
> not
> > > >actually environment variables[1] so are not inherited by
> subshells).
> > >
> > > Some shells allow you to "inherit" aliases by defining a variable
> that
> > > names a file that is sourced by each new-generation shell. If you
> > > place your alias commands and any other environment variable
> settings
> > > you require in this file, they will be set when the shell is
> started.
> > > In ksh it's ENV and in bash it's BASH_ENV. Of course, this doesn't
> > > help the original poster because perl invokes /bin/sh (on most Unix
> > > systems) to implement qx//.
> > >
> > > The answer "You can't" is correct, of course.
> > >
> > > --
> > > Garry Williams
> > >
> >
> > Not being at my *nix box right now, I can't try this, but...
> >
> > In csh, can you pipe some alias settings to source to "activate" them?
> >
> > For instance,
> >
> > my_alias_generating_perl_script | source
> >
> > Or does this not DWIW because source is now a subshell?
> >
> > Incidentally, I don't think it was all that clear whether the original
> > poster was trying to *read* aliases already set, or *set* aliases to
> be
> > effective out in the parent shell once a script terminated. (We're all
> > sure that they can't be *set* this way.)
> >
> > -QM
> >
> > --
> > Quantum Mechanics: The dreams stuff is made of.
> >
> > Sent via Deja.com http://www.deja.com/
> > Before you buy.
> >
>
> This works in csh:
>
> eval `perl -e 'print "alias xyz banner perl"'`
>
> This works in ksh:
>
> eval `perl -e 'print "alias xyz=banner perl"'`
>
> except I can't figure out the quote-quoting...;(
>
> -QM
> --
> Quantum Mechanics: The dreams stuff is made of.
>
>
> Sent via Deja.com http://www.deja.com/
> Before you buy.
------------------------------
Date: Thu, 16 Nov 2000 13:51:39 -0000
From: "Alan Dougall (ntl)" <abaltd@ntlworld.com>
Subject: Do I need Java to redirect form parameters?
Message-Id: <BERQ5.2998$X03.50261@news2-win.server.ntlworld.com>
'Scuse me if this is off-topic...
I know a few (simple!) ways how to redirect from the current page to
another.
But how do I ensure that a page form parameters (with hidden values) are
automatically forwarded to the follow-up page without waiting/needing the
user to press the button on that page?
Essentially, the first page asks for details. After checking the details,
the second form "page" needs to forwards these to another site (not mine!)
Hope that makes sense!
--
Alan Dougall
alan.dougall@virgin.net
http://start.at/the.cross
------------------------------
Date: Thu, 16 Nov 2000 14:44:46 +0300
From: "Andrew Tkachenko" <bugfixxer@yahoo.com>
Subject: Re: Exporting variables from modules
Message-Id: <3a13c989.0@news.crtc.spb.ru>
First of all, you may arrange all variables in one group (or split them to
diferent groups) and then import them next way:
use SomeModule qw/:some_group/. That's looks better tham importing all
variables from module in a main package.
Another way is to export hashes with parameters you need
Best regards, Andrew
--------------------------------
http://afixxer.boom.ru
Kingsley Tart <a@b.c> пишет в
сообщении:DTBQ5.1109$X03.20924@news2-win.server.ntlworld.com...
> I want to have a module that not only contains some common subroutines to
a
> suite of scripts that I'm writing, but also declares (and assigns values
to)
> a number of variables.
>
> To get round compile errors, I've had to list all of the vars I'm
exporting
> in the @EXPORT array and tell the main program to import each and every
one.
> Surely there must be a better way? I don't have to seem to do this with
the
> standard modules but can't see how they are different in the way that they
> are declared.
>
> On top of that, though I'm setting the values, they are not coming across
> from the module to the program, despite having an "InitialiseVariables"
> subroutine to the module and a call to it from the main program.
>
> Cheers,
> Kingsley.
>
> --8<--
> package SkyMail;
> require Exporter;
> @ISA=qw(Exporter);
> @EXPORT=qw($workingdir $incomingdir $outgoingdir $KickDir $ProcMonDir
> $KickMonitorInterval $OutgoingKickMonitorCycles
> $ListenserverRecoveryPeriod
> $KickserverRecoveryPeriod $forwardingfile $optionsfile
$ServerLog
> $ServerSessionLog $ClientSessionLog $StdErrLog $servername
> $hostname
> $MailerDaemonAddress $MailerDaemonName $defaultport $crlf $cr
> $nameofunknownhost $maxrecipientspermessage $InactivityTimeout
> $ClientTimeout $MaxMessageSize $Megabyte
> $LinesToIncludeInBounceMessages
> @timezones
>
> InitialiseVariables DomainDirectory DirectoryIsOutgoing
> ProcessExists logmsg);
> @EXPORT_OK=@EXPORT;
> --8<--
>
> --8<--
> #!/usr/bin/perl
> require 5.002;
> use strict;
>
> use Socket;
> use Carp;
> use FileHandle;
> use Net::DNS;
> use SkyMail qw($workingdir $incomingdir $outgoingdir $KickDir $ProcMonDir
> $KickMonitorInterval $OutgoingKickMonitorCycles
> $ListenserverRecoveryPeriod
> $KickserverRecoveryPeriod $forwardingfile $optionsfile
> $ServerLog
> $ServerSessionLog $ClientSessionLog $StdErrLog $servername
> $hostname
> $MailerDaemonAddress $MailerDaemonName $defaultport $crlf
$cr
> $nameofunknownhost $maxrecipientspermessage
> $InactivityTimeout
> $ClientTimeout $MaxMessageSize $Megabyte
> $LinesToIncludeInBounceMessages
> @timezones
>
> InitialiseVariables DomainDirectory DirectoryIsOutgoing
> ProcessExists logmsg);
> --8<--
>
>
>
> --
> Cheers,
> Kingsley
> k ingsl ey at sk 4 y mark 3 et dot 34 co dot 4 uk (remove the digits)
>
>
------------------------------
Date: Thu, 16 Nov 2000 10:59:32 GMT
From: qlos@my-deja.com
Subject: How to get client address from accept()
Message-Id: <8v0emj$2b8$1@nnrp1.deja.com>
Hi,
I would like to get client address when connected to the server.
According to "Perl in a Nutshell" accept() returns connected address
when call succeeds. How can I extract this infomation from this what
accept() gives me back ??
cheers
qlos
Sent via Deja.com http://www.deja.com/
Before you buy.
------------------------------
Date: 16 Nov 2000 13:12:38 +0000
From: nobull@mail.com
Subject: Re: How to get client address from accept()
Message-Id: <u91ywcm56h.fsf@wcl-l.bham.ac.uk>
qlos@my-deja.com writes:
> According to "Perl in a Nutshell" accept() returns connected address
> when call succeeds.
"In a nutshell" books are intended to complement not replace the
reference manuals.
> How can I extract this infomation from this what accept() gives me back ??
perldoc -f accept
It doesn't actually _contain_ the answer but it does tell you to "See
the example in..." and tells you exactly where in the manual you'll
find the answer.
--
\\ ( )
. _\\__[oo
.__/ \\ /\@
. l___\\
# ll l\\
###LL LL\\
------------------------------
Date: Thu, 16 Nov 2000 13:29:04 GMT
From: garry@zweb.zvolve.net (Garry Williams)
Subject: Re: How to get client address from accept()
Message-Id: <AiRQ5.665$xb1.39864@eagle.america.net>
On Thu, 16 Nov 2000 10:59:32 GMT, qlos@my-deja.com <qlos@my-deja.com>
wrote:
>I would like to get client address when connected to the server.
You can find an example of that in the perlipc manual page.
--
Garry Williams
------------------------------
Date: Thu, 16 Nov 2000 14:03:44 +0000
From: Nick Condon <nickco3@yahoo.co.uk>
Subject: Re: How to get client address from accept()
Message-Id: <3A13E940.7F2D9B10@yahoo.co.uk>
qlos@my-deja.com wrote:
> Hi,
>
> I would like to get client address when connected to the server.
> According to "Perl in a Nutshell" accept() returns connected address
> when call succeeds. How can I extract this infomation from this what
> accept() gives me back ??
Use Socket::sockaddr_in to unpack the data structure accept() gives you.
Lets say you successfully create a socket called SERVER, successfully
bind it and accept an incoming connection.
use Socket;
# ... All your setup code, as above ...
my $paddr = accept (CLIENT, SERVER);
my ($port, $iaddr) = sockaddr_in($paddr);
my $name = gethostbyaddr($iaddr);
The client's IP address is in $iaddr, $name contains the client's
hostname, $port is the originating port (probably not very interesting).
--
Nick
------------------------------
Date: Thu, 16 Nov 2000 08:31:13 GMT
From: a_hertz@removethis.yahoo.com (Anders Hertz)
Subject: How to read mail
Message-Id: <3a139ad9.4264056@news.internord.dk>
Hi group
Now I know how to send mail using Perl, but how can I retrieve an
email, and read it ?.
Anders
------------------------------
Date: Thu, 16 Nov 2000 09:42:25 GMT
From: rgarciasuarez@free.fr (Rafael Garcia-Suarez)
Subject: Re: How to read mail
Message-Id: <slrn917b0u.2lk.rgarciasuarez@rafael.kazibao.net>
Anders Hertz wrote in comp.lang.perl.misc:
>Hi group
>
>Now I know how to send mail using Perl, but how can I retrieve an
>email, and read it ?.
Depends on how you access your mail. POP? IMAP? local mailbox? etc...
--
# Rafael Garcia-Suarez / http://rgarciasuarez.free.fr/
------------------------------
Date: 16 Nov 2000 13:13:28 +0000
From: nobull@mail.com
Subject: Re: How to read mail
Message-Id: <u9zoj0kqkn.fsf@wcl-l.bham.ac.uk>
a_hertz@removethis.yahoo.com (Anders Hertz) writes:
> Now I know how to send mail using Perl, but how can I retrieve an
> email, and read it ?.
Where is the mailbox?
On a POP server? Try modules that implement POP clients. There are
several to choose from.
On an IMAP server? Try modules that implement IMAP cleints. There are
several to choose from.
In a Unix mailbox file? A VM file? A MH file? A BABYL file? A
some-other-application file? Dunno - there's some experimental stuff
on CPAN for some of this but on the whole IMHO it's probably better to
keep neat separation and between mailbox and mail user agent using
IMAP or POP.
--
\\ ( )
. _\\__[oo
.__/ \\ /\@
. l___\\
# ll l\\
###LL LL\\
------------------------------
Date: Thu, 16 Nov 2000 09:30:06 +0100
From: jonasbn <jonasbn@wanadoo.dk>
Subject: Re: I need a fork example, please
Message-Id: <Pine.LNX.4.10.10011160920160.7487-100000@coltrane.vas.mobilix.dk>
On Wed, 15 Nov 2000, Alex Hart wrote:
> I want to fork off a process, run a function, then die. Basically, I
> have a user interface that I want to keep going, but I want to talk to a
> server in the background, without having to wait for the server's
> response.
>
[snip]
>
> Thanks.
> - Alex Hart
>
Hello Alex,
This is a forking server. it's an example from the Cookbook chapter 17, I can really recommend this bookr.
If you want more examples from the chapter 17, go to o'reillys the have all examples for free download.
----------------------------------
# set up the socket SERVER, bind and listen ...
use POSIX qw(: sys_wait_h);
sub REAPER {
1 until (-1 == waitpid(-1, WNOHANG));
$SIG{CHLD} = \&REAPER; # unless $] >= 5.002
}
$SIG{CHLD} = \&REAPER;
while ($hisaddr = accept(CLIENT, SERVER)) {
next if $pid = fork; # parent
die "fork: $!" unless defined $pid; # failure
# otherwise child
close(SERVER); # no use to child
# ... do something
exit; # child leaves
} continue {
close(CLIENT); # no use to parent
}
------------------------------
jonasbn
Eml: jonasbn@wanadoo.dk || ICQ: 62401545
WWW: http://hjem.wanadoo.dk/~wan17111/
WAP: http://jonasbn.hjem.wanadoo.dk/index.wml
------------------------------
Date: Thu, 16 Nov 2000 09:55:29 +0100
From: "Philip 'Yes, that's my address' Newton" <nospam.newton@gmx.li>
Subject: Re: IP geography
Message-Id: <0k371ts8np6ml0la6nh6g0h2rhotn4dchn@4ax.com>
On Thu, 16 Nov 2000 10:30:05 +1100, jason <elephant@squirrelgroup.com> wrote:
> as I'm sure you probably know .. you can very easily determine whether
> an IP address was designated by ARIN or APNIC or RIPE .. and each of the
> non US registries contain country information in the number record ..
> making it "quite easy" to classify IP address by country of designation
As long as designation is enough for you... for example, *.aol.com could be
anywhere but I'd assume all of its address range is managed by ARIN.
Cheers,
Philip
--
Philip Newton <nospam.newton@gmx.li>
If you're not part of the solution, you're part of the precipitate.
------------------------------
Date: Thu, 16 Nov 2000 20:16:11 +0800
From: blue <kmlim@cheerful.com>
Subject: libperl.so
Message-Id: <3A13D00B.DDFCDF26@cheerful.com>
I am using perl5.6 and INN2.2.3 (news server).
I obtained this error:
/var/news/bin/innd: can't load library 'libperl.so'
test# ldd /var/news/bin/innd
libperl.so => not found
libdl.so => /shlib/libdl.so (0x18090000)
libm.so => /shlib/libm.so.0.0 (0x18094000)
libc.so.1 => /shlib/libc.so.1 (0x180a6000)
libutil.so => /shlib/libutil.so.0.0 (0x1816e000)
libgcc.so.1 => /shlib/libgcc.so.1 (0x1817c000)
--lim
------------------------------
Date: Thu, 16 Nov 2000 20:16:57 +0800
From: blue <kmlim@cheerful.com>
Subject: libperl.so
Message-Id: <3A13D039.2E1D1820@cheerful.com>
I am using perl5.6 and INN2.2.3 (news server).
I obtained this error:
/var/news/bin/innd: can't load library 'libperl.so'
test# ldd /var/news/bin/innd
libperl.so => not found
libdl.so => /shlib/libdl.so (0x18090000)
libm.so => /shlib/libm.so.0.0 (0x18094000)
libc.so.1 => /shlib/libc.so.1 (0x180a6000)
libutil.so => /shlib/libutil.so.0.0 (0x1816e000)
libgcc.so.1 => /shlib/libgcc.so.1 (0x1817c000)
--lim
------------------------------
Date: Thu, 16 Nov 2000 20:18:23 +0800
From: blue <kmlim@cheerful.com>
Subject: libperl.so
Message-Id: <3A13D08F.5FACE657@cheerful.com>
I am using perl5.6 and INN2.2.3 (news server).
I obtained this error:
/var/news/bin/innd: can't load library 'libperl.so'
test# ldd /var/news/bin/innd
libperl.so => not found
libdl.so => /shlib/libdl.so (0x18090000)
libm.so => /shlib/libm.so.0.0 (0x18094000)
libc.so.1 => /shlib/libc.so.1 (0x180a6000)
libutil.so => /shlib/libutil.so.0.0 (0x1816e000)
libgcc.so.1 => /shlib/libgcc.so.1 (0x1817c000)
--lim
------------------------------
Date: Thu, 16 Nov 2000 23:37:54 +1100
From: mgjv@tradingpost.com.au (Martien Verbruggen)
Subject: Re: libperl.so
Message-Id: <slrn917l92.6sn.mgjv@martien.heliotrope.home>
On Thu, 16 Nov 2000 20:18:23 +0800,
blue <kmlim@cheerful.com> wrote:
> I am using perl5.6 and INN2.2.3 (news server).
> I obtained this error:
> /var/news/bin/innd: can't load library 'libperl.so'
>
> test# ldd /var/news/bin/innd
> libperl.so => not found
> libdl.so => /shlib/libdl.so (0x18090000)
> libm.so => /shlib/libm.so.0.0 (0x18094000)
> libc.so.1 => /shlib/libc.so.1 (0x180a6000)
> libutil.so => /shlib/libutil.so.0.0 (0x1816e000)
> libgcc.so.1 => /shlib/libgcc.so.1 (0x1817c000)
There really was no need to post this 4 times. Usenet takes a bit of
time. Be patient.
You fail to mention which system you're on, but all you need to do is
tell your runtime linker where the libperl.so library lives. On many
systems you do that by setting LD_LIBRARY_PATH (or LD_RUN_PATH while
you're linking the application). On systems with the GNU ldd, you
probably need to edit /etc/ld.so.conf and run ldconfig.
It all depends on what platform you're on, and which linker you use.
This really has nothing to do with perl at all. It mainly has to do with
your platform, and where that innd binary came from, probably you
installed some RPM or so. You should probably ask in a group that talks
about your platform, and mention where those binaries came from.
Martien
--
Martien Verbruggen |
Interactive Media Division |
Commercial Dynamics Pty. Ltd. | What's another word for Thesaurus?
NSW, Australia |
------------------------------
Date: 16 Nov 2000 09:40:53 -0000
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: Please tell me why this code is wrong (ActiveState build 613 on Winblows)
Message-Id: <8v0a35$fq3$1@lublin.zrz.tu-berlin.de>
David Steuber <nospam@david-steuber.com> wrote in comp.lang.perl.misc:
>I guess I shouldn't presume. It makes a pre out of u and me.
Looking closely, it makes a pres out of u and me. I understand
you could use one in the US right now.
Anno
------------------------------
Date: 16 Nov 2000 05:12:01 -0600
From: logan@cs.utexas.edu (Logan Shaw)
Subject: Re: Please tell me why this code is wrong (ActiveState build 613 on Winblows)
Message-Id: <8v0fe1$8pn$1@doughboy.cs.utexas.edu>
In article <8v0a35$fq3$1@lublin.zrz.tu-berlin.de>,
Anno Siegel <anno4000@lublin.zrz.tu-berlin.de> wrote:
>David Steuber <nospam@david-steuber.com> wrote in comp.lang.perl.misc:
>
>>I guess I shouldn't presume. It makes a pre out of u and me.
>
>Looking closely, it makes a pres out of u and me. I understand
>you could use one in the US right now.
<offtopic>
I appreciate the humor, but really the process is not yet in any danger
of falling behind schedule, since long before the first voter walked
into the booth, the date for the members of the Electoral College to
meet was set at December 18, 2000. In other words, there seems to be a
fuss since we haven't picked a new president yet, but actually we
weren't scheduled to pick one for more than a month anyway.
</offtopic>
- Logan
------------------------------
Date: Thu, 16 Nov 2000 12:16:07 +0100
From: "Walter van den Berg" <w.berg@NOSPAMPLEASEsamsom.nl>
Subject: Re: question about reusing a variable from a regex
Message-Id: <8v0fmf$aqh$1@zonnetje.nl.uu.net>
Ian Boreham <ianb@ot.com.au> wrote:
> As the old adage goes, "you can do anything in a single substitution
> statement", so try this (with slight simplifications such as omitting
> $hoogstenivo):
>
>
> #!/usr/bin/perl -w
> use strict;
>
> undef $/;
> my $current;
> for(<DATA>)
> {
> s/(<RD(:level)?>)([^<]*)</
> $current = $3 if $2;
> "$1<gr:$current>$current<"/ge;
> print;
> }
>
>
> __END__
It's working - thanks! But when I have a situation when there could be
different things between the <RD> tags, how would I solve that? Like making
(:level) a wildcard, like (.*) but then something else cause this doesn't
work...
Walter.
------------------------------
Date: Thu, 16 Nov 2000 20:57:31 +1100
From: mgjv@tradingpost.com.au (Martien Verbruggen)
Subject: Re: raw ethernet
Message-Id: <slrn917bsa.6sn.mgjv@martien.heliotrope.home>
On Thu, 16 Nov 2000 20:00:41 +1300,
Nathan Ward <nward@nfmail.com> wrote:
>> > is there anyone here who has some code avail to help me send raw
> ethernet
>> > packets? an esp interested in sending arp packets...
>>
>> http://search.cpan.org/search?mode=module&query=ethernet
>
> just comes up with NetPacket::* stuff, i tried that but none of the packet
> encoding (as it is called) is done yet. and as i dont know how to do it, i
> cant... unless someone can point me to some code? then mabee i'll make some
> generation things for NetPacket::*
Honestly? I thought those modules were fairly complete. But not that
I've actually downloaded and unpacked them I see they aren't.
I don't know of any other code, so I guess the only thing I can advise
you is get the relevant RFCs and specs, and get cracking :). Or maybe
you can find some other implementation...
It shouldn't be too hard to do, just tedious :)
Martien
--
Martien Verbruggen |
Interactive Media Division | In the fight between you and the
Commercial Dynamics Pty. Ltd. | world, back the world - Franz Kafka
NSW, Australia |
------------------------------
Date: Thu, 16 Nov 2000 09:55:28 +0100
From: "Philip 'Yes, that's my address' Newton" <nospam.newton@gmx.li>
Subject: Re: regular expression for jpg images
Message-Id: <hd371tkblricrt8jf9d3s74p819rdrrgr6@4ax.com>
On Mon, 13 Nov 2000 22:26:09 GMT, tjla@guvfybir.qlaqaf.bet (Gwyn Judd) wrote:
> I like the HTML::Parser module, although there are others
> which work in different ways.
I like HTML::TokeParser. Used it recently to "de-fang" HTML selectively.
Cheers,
Philip
--
Philip Newton <nospam.newton@gmx.li>
If you're not part of the solution, you're part of the precipitate.
------------------------------
Date: Thu, 16 Nov 2000 13:49:52 GMT
From: njc@CC47532-A.ewndsr1.nj.home.com (Neil Cherry)
Subject: Re: sleep & $anything question
Message-Id: <slrn917php.qk1.njc@CC47532-A.ewndsr1.nj.home.com>
On Thu, 16 Nov 2000 05:09:42 GMT, Gwyn Judd wrote:
>I was shocked! How could Neil Cherry <njc@CC47532-A.ewndsr1.nj.home.com>
>say such a terrible thing:
>>I have a bit of a weird problem with sleep. I tried the follwoing code
>>under Linux (I suspect Windows would be the same):
>>
>>$Tb = 30;
>>
>>sleep( $Tb );
>>
>>This immediately returns instead of sleeping for 30 seconds.
>
>Are you sure? It works okay for me. Is that cut and pasted from your
>actual code?
I'll try it again in my program, I just tried it from stdin and it
worked like you said. Strange! If it works in my program then we'll
just consider it a typo and a late night.
Thanks
--
Linux Home Automation Neil Cherry ncherry@home.net
http://members.home.net/ncherry (Text only)
http://meltingpot.fortunecity.com/lightsey/52 (Graphics)
http://linuxha.sourceforge.net/ (SourceForge)
------------------------------
Date: Thu, 16 Nov 2000 13:52:01 -0000
From: "Geoff Winkless" <geoff-at-farmline-dot-com@127.0.0.1>
Subject: Re: sleep & $anything question
Message-Id: <8v0oq3$ka4$1@soap.pipex.net>
"Neil Cherry" <njc@CC47532-A.ewndsr1.nj.home.com> wrote in message
news:slrn917php.qk1.njc@CC47532-A.ewndsr1.nj.home.com...
> On Thu, 16 Nov 2000 05:09:42 GMT, Gwyn Judd wrote:
> >I was shocked! How could Neil Cherry <njc@CC47532-A.ewndsr1.nj.home.com>
> >say such a terrible thing:
> >>I have a bit of a weird problem with sleep. I tried the follwoing code
> >>under Linux (I suspect Windows would be the same):
> >>
> >>$Tb = 30;
> >>
> >>sleep( $Tb );
> >>
> >>This immediately returns instead of sleeping for 30 seconds.
> >
> >Are you sure? It works okay for me. Is that cut and pasted from your
> >actual code?
>
> I'll try it again in my program, I just tried it from stdin and it
> worked like you said. Strange! If it works in my program then we'll
> just consider it a typo and a late night.
The only thing to check for is if anything would have sent a siglarm to the
process.
Geoff
------------------------------
Date: Thu, 16 Nov 2000 13:58:01 -0000
From: "Geoff Winkless" <geoff-at-farmline-dot-com@127.0.0.1>
Subject: Re: sleep & $anything question
Message-Id: <8v0p5a$ker$1@soap.pipex.net>
"Geoff Winkless" <geoff-at-farmline-dot-com@127.0.0.1> wrote in message
news:8v0oq3$ka4$1@soap.pipex.net...
> The only thing to check for is if anything would have sent a siglarm to
the
> process.
Ahem, I don't know why I wrote that.
s/The only/One/
Geoff
------------------------------
Date: Thu, 16 Nov 2000 11:21:06 +0800
From: "John Lin" <johnlin@chttl.com.tw>
Subject: Re: Sort files by date
Message-Id: <8uvk1g$cnb@netnews.hinet.net>
Martien Verbruggen wrote
> Wyzelli wrote:
> >> my $oldest = (sort { -M $a <=> -M $b } @files)[-1];
In many cases, Perl programmers tend to write convenient codes, like:
(1) my ($oldest,$newest) = (sort {-M $a <=> -M $b} @files)[-1,0];
(2) if(grep {$_ eq 'target'} @array) { print "found" }
But, in (1), sort is O(N log N), while min/max just need a O(N) loop.
For (2) the Perl FAQ (perldoc -q "element") tells us: Please do not
use grep to tell whether a list or array contains a certain element
because it checks every element even if the first matches.
Well then, for subsitiution of these very frequently written codes,
I would suggest to provide a module (or build in?) like:
use List::Utilities;
my ($min,$max) = minmax {-M $a <=> -M $b} @files;
if(first {$_ eq 'target'} @array) { print "found" }
so we can write conveniently without losing efficiency.
John Lin
------------------------------
Date: Thu, 16 Nov 2000 08:47:40 GMT
From: quite@dial.pipex.com (Aandi Inston)
Subject: Re: Using Perl OLE to edit acrobat annotations.
Message-Id: <3a139efa.305193@reading.news.pipex.net>
fergus@twig.demon.co.uk (Fergus McMenemie) wrote:
>Aandi,
>
>Thanks yet again for your help. I guess my comments about the obsure IAC
>API apply. Using OLE I seem unable to do anything about the "type" of
>the annotation. I have however taken seen your other comment about using
>FORMS, this works fine.
I'd say the biggest problem is this: the manual was written when
Acrobat supported only one kind of annotation, so things were a little
more obvious. That part was never revised to reflect the addition of
new types.
---------------------------------------
Aandi Inston quite@dial.pipex.com
Imposition and booklets for PDF - http://www.quite.com/imposing/
------------------------------
Date: Thu, 16 Nov 2000 14:02:57 GMT
From: Scott Thornton <sladb69@magma.ca>
Subject: Where are param and redirect defined
Message-Id: <3A13E922.2C7367C8@magma.ca>
I have seen in a few examples in the newsgroups the use of param and
redirect. Where are they defined? They are not part of the original
PERL language, or at least they are not listed in the man pages.
Scott
------------------------------
Date: 16 Nov 2000 11:17:00 GMT
From: strien@inl.nl (Rob van Strien)
Subject: Win32::Process, loading file in already active editor
Message-Id: <8v0fnc$cch$1@highway.leidenuniv.nl>
In a Perl/Tk script I load my output file in an editor with the following
command:
Win32::Process::Create(
my $process,
"$editor",
"TextPad $uitvoerbst",
0,
DETACHED_PROCESS,
".")
This works fine. But opening another file also starts another instance of the
editor, even when he's still around. So basically I only want to create a
new editor process the first time and use the same process for my subsequent
files. Is this possible?
Thanks in Advance,
Rob van Strien
strien@inl.nl
------------------------------
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 4901
**************************************