[31436] in Perl-Users-Digest
Perl-Users Digest, Issue: 2688 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Sun Nov 22 21:09:46 2009
Date: Sun, 22 Nov 2009 18:09:09 -0800 (PST)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Perl-Users Digest Sun, 22 Nov 2009 Volume: 11 Number: 2688
Today's topics:
[tk] grab main window position <dontmewithme@got.it>
access pref. and temp dir on windows <dontmewithme@got.it>
Re: access pref. and temp dir on windows <jurgenex@hotmail.com>
Re: access pref. and temp dir on windows <spamtrap@shermpendley.com>
Re: access pref. and temp dir on windows <dontmewithme@got.it>
Re: access pref. and temp dir on windows <ben@morrow.me.uk>
first time using threads <dontmewithme@got.it>
Re: first time using threads <ben@morrow.me.uk>
Re: Help with HoH and accessing right keys <jurgenex@hotmail.com>
Re: Help with HoH and accessing right keys <cyrusgreats@gmail.com>
Re: Help with HoH and accessing right keys <jurgenex@hotmail.com>
Re: Help with HoH and accessing right keys <jurgenex@hotmail.com>
Re: Help with HoH and accessing right keys <cyrusgreats@gmail.com>
Re: Help with HoH and accessing right keys <tadmc@seesig.invalid>
Re: help with regex <jurgenex@hotmail.com>
Re: How to get at the perl options sharma__r@hotmail.com
Re: How to get at the perl options <newsojo@web.de>
Re: How to get at the perl options <ben@morrow.me.uk>
Re: How to get at the perl options <derykus@gmail.com>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Mon, 23 Nov 2009 01:03:35 +0100
From: "Larry" <dontmewithme@got.it>
Subject: [tk] grab main window position
Message-Id: <4b09d156$0$8861$4fafbaef@reader5.news.tin.it>
Hi,
I am on the process of creating my first perl/tkx application. I was
wondering if there was a way to get the current window position on
screen...so that I could save and when the application is launched again
it'll position right there!
this is what I have coded so far:
#!/wperl
use strict;
use warnings;
use Tkx;
Tkx::package_require("BWidget");
my $mw = Tkx::widget->new(".");
$mw->g_wm_title('Hello World!');
$mw->g_wm_geometry("400x250-5+5");
Tkx::MainLoop();
__END__;
I guess there should be some sort of callback to actually notice when the
window changes position...
thanks
------------------------------
Date: Sun, 22 Nov 2009 16:10:11 +0100
From: "Larry" <dontmewithme@got.it>
Subject: access pref. and temp dir on windows
Message-Id: <4b095452$0$8859$4fafbaef@reader5.news.tin.it>
Hi,
I'm coding a little script for windows. I'd like to know how to save some
data on a given preference file and some other data on a temp file. Can it
actually be done?
thanks ever so much
------------------------------
Date: Sun, 22 Nov 2009 10:43:28 -0800
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: access pref. and temp dir on windows
Message-Id: <0d1jg59ufj7g35so58odsvl2im1u7aib2q@4ax.com>
"Larry" <dontmewithme@got.it> wrote:
> I'm coding a little script for windows. I'd like to know how to save some
>data on a given preference file and some other data on a temp file. Can it
>actually be done?
Maybe I don't see the forest for the trees, but what is the problem?
perldoc -f open
perldoc -f print
should have all you need. Maybe also have a look at
perldoc -q temp: "How do I make a temporary file name?"
jue
------------------------------
Date: Sun, 22 Nov 2009 15:37:57 -0500
From: Sherm Pendley <spamtrap@shermpendley.com>
Subject: Re: access pref. and temp dir on windows
Message-Id: <m23a461eje.fsf@shermpendley.com>
"Larry" <dontmewithme@got.it> writes:
> I'm coding a little script for windows. I'd like to know how to save
> some data on a given preference file and some other data on a temp
> file. Can it actually be done?
Yes.
sherm--
------------------------------
Date: Mon, 23 Nov 2009 00:32:40 +0100
From: "Larry" <dontmewithme@got.it>
Subject: Re: access pref. and temp dir on windows
Message-Id: <4b09ca16$0$8854$4fafbaef@reader5.news.tin.it>
"Jürgen Exner" <jurgenex@hotmail.com> ha scritto nel messaggio
news:0d1jg59ufj7g35so58odsvl2im1u7aib2q@4ax.com...
> "Larry" <dontmewithme@got.it> wrote:
>> I'm coding a little script for windows. I'd like to know how to save
>> some
>>data on a given preference file and some other data on a temp file. Can it
>>actually be done?
>
> Maybe I don't see the forest for the trees, but what is the problem?
>
> perldoc -f open
> perldoc -f print
I am so sorry...I meant to say: where are those directories on windows?
I tried accessing temp dir on win by usinf File::Spec
where the dir for preferences?
thanks
------------------------------
Date: Mon, 23 Nov 2009 00:40:29 +0000
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: access pref. and temp dir on windows
Message-Id: <t82pt6-rti1.ln1@osiris.mauzo.dyndns.org>
Quoth "Larry" <dontmewithme@got.it>:
>
> "Jürgen Exner" <jurgenex@hotmail.com> ha scritto nel messaggio
> news:0d1jg59ufj7g35so58odsvl2im1u7aib2q@4ax.com...
> > "Larry" <dontmewithme@got.it> wrote:
> >> I'm coding a little script for windows. I'd like to know how to save
> >> some
> >>data on a given preference file and some other data on a temp file. Can it
> >>actually be done?
> >
> > Maybe I don't see the forest for the trees, but what is the problem?
> >
> > perldoc -f open
> > perldoc -f print
>
> I am so sorry...I meant to say: where are those directories on windows?
>
> I tried accessing temp dir on win by usinf File::Spec
>
> where the dir for preferences?
What do you mean by 'preferences'?
You may want File::HomeDir.
Ben
------------------------------
Date: Mon, 23 Nov 2009 00:52:12 +0100
From: "Larry" <dontmewithme@got.it>
Subject: first time using threads
Message-Id: <4b09ceaa$0$8859$4fafbaef@reader5.news.tin.it>
Hi,
I'm stuck at thread as I've just starting using it. I would like to
spawn (and detach) a thread which update a text label in a Tk window. The
following is the code:
#!/wperl
use strict;
use warnings;
use Tkx;
use threads;
use threads::shared;
my $k : shared = 0;
my $mw = Tkx::widget->new(".");
$mw->g_wm_title('Hello World!');
$mw->g_wm_geometry("400x250-5+5");
my $mf = $mw->new_ttk__frame();
$mf->g_grid();
my $la = $mf->new_ttk__label(-textvariable => \$k);
$la->g_grid();
my $thr = threads->new(\&_sub1);
$thr->detach();
Tkx::MainLoop();
sub _sub1 {
while(1)
{
$k = $k + 1; sleep 1;
}
}
__END__;
I thought the text label would be updated every 1 second. Yet, it gets the
firts update then it does not anymore...what am I doing wrong?
thanks
------------------------------
Date: Mon, 23 Nov 2009 00:44:52 +0000
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: first time using threads
Message-Id: <4h2pt6-rti1.ln1@osiris.mauzo.dyndns.org>
Quoth "Larry" <dontmewithme@got.it>:
>
> I'm stuck at thread as I've just starting using it. I would like to
> spawn (and detach) a thread which update a text label in a Tk window. The
> following is the code:
(I haven't looked at the code.) Do you know Tkx is thread-safe? Tk (that
is, Tk.pm, the old Nick Ing-Simmons perl/tk interface) is known not to
work with threads.
Ben
------------------------------
Date: Sun, 22 Nov 2009 09:52:50 -0800
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: Help with HoH and accessing right keys
Message-Id: <cguig5d840lf0k62ltramlfen7ng5ovga5@4ax.com>
Obama <cyrusgreats@gmail.com> wrote:
>I post before but I was not doing it the right way, here is the
>complete code that I need your help, please do let me know if you do
>have any other question. Thanks
Is this a different problem or the same problem as you posted under
"help with regex"?
It is awfully confusing as at least I am not able to keep the
information from both threads separated.
jue
------------------------------
Date: Sun, 22 Nov 2009 10:15:20 -0800 (PST)
From: Obama <cyrusgreats@gmail.com>
Subject: Re: Help with HoH and accessing right keys
Message-Id: <bd5a8bb5-0182-4ca4-b698-7b8dbdf68272@j9g2000prh.googlegroups.com>
Thank you guys,
I came up with this and it seems works!!
if ($action eq "Start") {
$servers{$name}{start_server} = {
date => $date,
time => $time,
};
} elsif ($action eq "End") {
if (exists $servers{$name}{start_server}) {
$servers{$name}{$action} = {
date => $date,
time => $time,
size => $size,
};
print "Server: $name\n";
my $start= $servers{$name}{start_server};
print "Start date: $start->{date}\n";
print "Start time: $start->{time}\n";
my $end= $servers{$name}{End};
print "End date: $end->{date}\n";
print "End time: $end->{time}\n";
print "End size: $end->{size}\n\n";
delete $servers{$name};
}
}
------------------------------
Date: Sun, 22 Nov 2009 10:19:37 -0800
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: Help with HoH and accessing right keys
Message-Id: <0kuig5p1o0vgl2f5kv15quedg082nogi9h@4ax.com>
Obama <cyrusgreats@gmail.com> wrote:
>The hash table seems it overwrites if one server has more than one
>'Start|End', I got more than 300 records, when I run the program it
>record the last 23, any idea?
Well, yeah, that's exactly what hashes are designed for and what they
do! I was about to point out that depending upon your data a hash may
not be the best choice for a data structure. That's what you get for
changing the requirements on the fly.
While Martien's suggestion with a HoA is certainly doable I would use a
different approach altogether: for a large amount of data dump all those
entries into a database and then go from there.
But for your tiny number of only 300 records just read them into a
two-dimensional array (AoA). A trivial split() on white space seems to
do quite nicely, although I have a suspicion that somewhere in the data
you did not show us there may be yet another hidden surprise.
Then retrieve the set of unique server names, and for each server name
filter (grep()) for all entries for that server, and then process those
one by one as needed for your output.
How you want that output to be compiled is still unclear to me. You just
admitted that each server can have multiple entries in the log file. But
can the time spans overlap (time between Start and End)? Can they be
subsets, i.e. can the task that started second finish first? Are all
entries in the log file in chronological sequence (otherwise you would
have to sort them by time first)? As you can see there are still a lot
of open questions even about your input data. And please don't start
changing the requirements again halfway through the solution. That's
what people call a moving target and nobody can hit that.
jue
------------------------------
Date: Sun, 22 Nov 2009 10:39:45 -0800
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: Help with HoH and accessing right keys
Message-Id: <6i0jg59072070gbcu6qhl2f6iaufa6j7m9@4ax.com>
Ben Morrow <ben@morrow.me.uk> wrote:
>The basic logic
>you need looks like
>
> for each line
> if it's a 'Start' line
> store all the captured information under the appropriate
> server name.
> if it's an 'End' line
> check you have a 'Start' line recorded for this server.
> print the data.
> delete the 'Start' entry now that you've finished with it.
>
>Now you write the code. You have all the pieces you need already.
Nice idea for what the OP told us so far! Unfortunately I have a strong
feeling that what he told us so far is still only part of the story.
Some open questions still (the OP did not mention any details on those
and I have a suspicion that he is so bogged down in tiny details that he
doesn't see the big issues):
- your suggestion requires that the log file is in chronological order.
We do not now that.
- what about overlapping time slots, e.g. Start2 happens before End1?
- what about included time slots, e.g. End2 happens before End1?
- what about incomplete tasks or abnormal termination? What if for
whatever reason (network cable unplugged? janitor pulled power cord for
his vacuum cleaner?) there is a Start-x but no corresponding End-x?
- ...
I strongly believe the OP just jumped at trying to code the nitty-gritty
details without giving any thought to the bigger picture as is very
evident by now admitting that the same server can have many entries
which was completely missing from the sample data he was presenting to
us. Typical case of a moving target "Oh, but there is now yet another
problem that I didn't think about".
jue
------------------------------
Date: Sun, 22 Nov 2009 10:47:06 -0800 (PST)
From: Obama <cyrusgreats@gmail.com>
Subject: Re: Help with HoH and accessing right keys
Message-Id: <f24040eb-0fe1-41f7-b83e-c537f137ff5d@u8g2000prd.googlegroups.com>
> But for your tiny number of only 300 records just read them into a
> two-dimensional array (AoA).
Actually the number of records could go up to 10000 records, depends
of the log file
> As you can see there are still a lot of open questions even about your input data.
The input data could be something like this:
src date time EST server-dep server-name-x Start
dst date time EST server-dep server-name-y Start
slk date time EST server-dep server-name-x Request
dst date time EST server-dep server-name-z Start
src date time EST server-dep server-name-x End (size kb)
slk date time EST server-dep server-name-y Request
slk date time EST server-dep server-name-z Request
dst date time EST server-dep server-name-y End (size kb)
dst date time EST server-dep server-name-z End
.....
.....
.....
src date time EST server-dep server-name-x Start
dst date time EST server-dep server-name-y Start
slk date time EST server-dep server-name-x Request
dst date time EST server-dep server-name-z Start
src date time EST server-dep server-name-x End (size kb)
slk date time EST server-dep server-name-y Request
slk date time EST server-dep server-name-z Request
dst date time EST server-dep server-name-y End (size kb)
dst date time EST server-dep server-name-z End
> And please don't start changing the requirements again halfway through the solution. That's
> what people call a moving target and nobody can hit that.
It won't happen again, I learned my lesson...
I will go with what I have or I should say I got from good people here
since it works the way I was it.
Thank you to all of you good people out there helping people like me.
------------------------------
Date: Sun, 22 Nov 2009 13:40:52 -0600
From: Tad McClellan <tadmc@seesig.invalid>
Subject: Re: Help with HoH and accessing right keys
Message-Id: <slrnhgj4oi.c2m.tadmc@tadbox.sbcglobal.net>
Obama <cyrusgreats@gmail.com> wrote:
>
>> But for your tiny number of only 300 records just read them into a
>> two-dimensional array (AoA).
>
> Actually the number of records could go up to 10000 records, depends
> of the log file
10,000 is also a tiny number.
--
Tad McClellan
email: perl -le "print scalar reverse qq/moc.noitatibaher\100cmdat/"
------------------------------
Date: Sun, 22 Nov 2009 10:24:35 -0800
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: help with regex
Message-Id: <0b0jg5psp6or97hph03vuvfmpj4mh0i884@4ax.com>
Obama <cyrusgreats@gmail.com> wrote:
>On Nov 21, 1:07 pm, Martien Verbruggen
><martien.verbrug...@invalid.see.sig> wrote:
>> On Sat, 21 Nov 2009 08:19:05 -0800 (PST),
>> If you have any questions, don't hesistate to ask.
>> Martien
>
>Martien,
>thanks for your help, I do have a log file which contains more than
>3000 records, after running the program it records only 23, the reason
I am confused! Is this a different problem than the one you posted under
"Help with HoH and accessing right keys"? Because in that thread you
claimed 23 out of 300 records.
>I guess that code overwrites if one server has more than one 'Start|
>End'. One server could 'Start' say at Nov 15 00:03:45 and 'End' Nov 15
>00:3:55 and have another session later on the log, say at Nov 18
>00:08:41 and 'End' Nov 18 00:08:59. The last one overwrite the earlier
>ones! Again thanks for your help if you can help me out on this!
Yes, as people have explained in that other thread, that's what hashes
do.
jue
------------------------------
Date: Sun, 22 Nov 2009 05:56:03 -0800 (PST)
From: sharma__r@hotmail.com
Subject: Re: How to get at the perl options
Message-Id: <8d2eda9f-0577-41e3-9993-82636343fde6@k13g2000prh.googlegroups.com>
On Nov 20, 11:33=A0pm, "C.DeRykus" <dery...@gmail.com> wrote:
> On Nov 20, 9:14=A0am, "Uri Guttman" <u...@StemSystems.com> wrote:
>
> > >>>>> "sr" =3D=3D sharma r <sharma...@hotmail.com> writes:
>
> > ...
>
> > then write a short wrapper script (in shell or c or even perl) to
> > call/exec perl and the script. don't do this in perl itself or you run
> > into your problem. if you split this into two things it becomes easy.
>
> I'm not sure why it was included in the strawberry distro
> but there's an example which could be easily modified:
>
> #include <unistd.h>
> #include <stdlib.h>
> #include <stdio.h>
> //
> // =A0wrap perl executable
> //
> int main (int argc, char* argv[]) {
>
> =A0 =A0 const char* perl_cmd =3D "C:/strawberry/perl/bin/perl.orig.exe";
> =A0 =A0 char* perl_args[argc];
> =A0 =A0 int i;
> =A0 =A0 FILE *fp;
>
> =A0 =A0 // perl_args[0] =3D argv[0];
> =A0 =A0 // for( int i =3D 1; =A0i <=3D argc; =A0i++ ) {
>
> =A0 =A0 fp =3D fopen("c:/temp/prog.log", "a");
> =A0 =A0 if (fp =3D=3D NULL) {
> =A0 =A0 =A0 =A0 printf("C:/temp/prog.log couldn't be opened...");
> =A0 =A0 =A0 =A0 exit(1);
> =A0 =A0 }
> =A0 =A0 for( i =3D 0; =A0i <=3D argc; =A0i++ ) {
> =A0 =A0 =A0 =A0 printf("arg %d =3D %s\n", i, argv[i] );
> =A0 =A0 =A0 =A0 // perl_args[i+1] =3D argv[i];
> =A0 =A0}
> =A0 =A0fprintf(fp,"%s was called...\n",argv[1]);
> =A0 =A0argv[0] =3D perl_cmd;
> =A0 =A0fclose(fp);
>
> =A0 =A0//return execv( perl_cmd, perl_args );
> =A0 =A0printf("exec'ing binary %s with arg %s...: =A0%s\n", argv[0],argv
> [1] );
> =A0 =A0return execv( perl_cmd, argv );
>
> }
>
> --
> Charles DeRykus
This doesn't solve my problem. The scenario when the script gets
executed
by the perl binary, as:
perl [perl options] myScrit.plx [script options]
would still pick the whatever perl version is ordained by
the PATH variable
No amount of wrapper logic would solve this unless there's found a way
to recall what options were provided to perl. We already have @ARGV
for
the the script options.
--Rakesh
------------------------------
Date: 22 Nov 2009 18:35:40 GMT
From: Oliver 'ojo' Bedford <newsojo@web.de>
Subject: Re: How to get at the perl options
Message-Id: <4b09847c$0$7628$9b4e6d93@newsspool1.arcor-online.net>
Am Sun, 22 Nov 2009 05:56:03 -0800 schrieb sharma__r:
>
> No amount of wrapper logic would solve this unless there's found a way
> to recall what options were provided to perl. We already have @ARGV for
> the the script options.
>
Then you probably have to stick to non-portable ways of getting the
command-line. On Linux you can evaluate /proc/$$/cmdline. On other systems
you could use 'ps'.
Oliver
------------------------------
Date: Sun, 22 Nov 2009 22:41:47 +0000
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: How to get at the perl options
Message-Id: <barot6-cuf1.ln1@osiris.mauzo.dyndns.org>
Quoth Oliver 'ojo' Bedford <newsojo@web.de>:
> Am Sun, 22 Nov 2009 05:56:03 -0800 schrieb sharma__r:
>
> >
> > No amount of wrapper logic would solve this unless there's found a way
> > to recall what options were provided to perl. We already have @ARGV for
> > the the script options.
>
> Then you probably have to stick to non-portable ways of getting the
> command-line. On Linux you can evaluate /proc/$$/cmdline. On other systems
> you could use 'ps'.
Or just write a little bit of XS to grab PL_origargv and PL_origargc.
You need to make sure you look at them before anyone gets a chance to
assign to $0, though, since those assignments reuse that memory (for
obvious reasons).
Ben
------------------------------
Date: Sun, 22 Nov 2009 16:26:10 -0800 (PST)
From: "C.DeRykus" <derykus@gmail.com>
Subject: Re: How to get at the perl options
Message-Id: <4fefc5e7-8a59-4743-bbf4-243afcff572d@g22g2000prf.googlegroups.com>
On Nov 22, 5:56=A0am, sharma...@hotmail.com wrote:
> On Nov 20, 11:33=A0pm, "C.DeRykus" <dery...@gmail.com> wrote:
>
>
>
> > On Nov 20, 9:14=A0am, "Uri Guttman" <u...@StemSystems.com> wrote:
>
> > > >>>>> "sr" =3D=3D sharma r <sharma...@hotmail.com> writes:
>
> > > ...
>
> > > then write a short wrapper script (in shell or c or even perl) to
> > > call/exec perl and the script. don't do this in perl itself or you ru=
n
> > > into your problem. if you split this into two things it becomes easy.
>
> > I'm not sure why it was included in the strawberry distro
> > but there's an example which could be easily modified:
>
> > #include <unistd.h>
> > #include <stdlib.h>
> > #include <stdio.h>
> > //
> > // =A0wrap perl executable
> > //
> > int main (int argc, char* argv[]) {
>
> > =A0 =A0 const char* perl_cmd =3D "C:/strawberry/perl/bin/perl.orig.exe"=
;
> > =A0 =A0 char* perl_args[argc];
> > =A0 =A0 int i;
> > =A0 =A0 FILE *fp;
>
> > =A0 =A0 // perl_args[0] =3D argv[0];
> > =A0 =A0 // for( int i =3D 1; =A0i <=3D argc; =A0i++ ) {
>
> > =A0 =A0 fp =3D fopen("c:/temp/prog.log", "a");
> > =A0 =A0 if (fp =3D=3D NULL) {
> > =A0 =A0 =A0 =A0 printf("C:/temp/prog.log couldn't be opened...");
> > =A0 =A0 =A0 =A0 exit(1);
> > =A0 =A0 }
> > =A0 =A0 for( i =3D 0; =A0i <=3D argc; =A0i++ ) {
> > =A0 =A0 =A0 =A0 printf("arg %d =3D %s\n", i, argv[i] );
> > =A0 =A0 =A0 =A0 // perl_args[i+1] =3D argv[i];
> > =A0 =A0}
> > =A0 =A0fprintf(fp,"%s was called...\n",argv[1]);
> > =A0 =A0argv[0] =3D perl_cmd;
> > =A0 =A0fclose(fp);
>
> > =A0 =A0//return execv( perl_cmd, perl_args );
> > =A0 =A0printf("exec'ing binary %s with arg %s...: =A0%s\n", argv[0],arg=
v
> > [1] );
> > =A0 =A0return execv( perl_cmd, argv );
>
> > }
>
> > --
> > Charles DeRykus
>
> This doesn't solve my problem. The scenario when the script gets
> executed
> by the perl binary, as:
>
> =A0 =A0perl [perl options] myScrit.plx [script options]
>
> would still pick the whatever perl version is ordained by
> the PATH variable
>
> No amount of wrapper logic would solve this unless there's found a way
> to recall what options were provided to perl. We already have @ARGV
> for
> the the script options.
>
Without modifying Perl to provide access to all its
commandline options (which would be useful), there
doesn't appear to be an easy way.
An ugly alternative might be to force the non-standard
invocation to re-specify the perl commandline:
[untested]
BEGIN{
...
if ( !exists $ENV{_perl_wrapper} || !defined ... ) {
print "Sorry, you'll need to re-specify any "
"options you used to invoke perl>";
chomp( my $opts =3D <> );
...
exec("perl $opts -w -S \"@ARGV\" -- $0"); # ..
}
}
--
Charles DeRykus
------------------------------
Date: 6 Apr 2001 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 6 Apr 01)
Message-Id: <null>
Administrivia:
To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.
Back issues are available via anonymous ftp from
ftp://cil-www.oce.orst.edu/pub/perl/old-digests.
#For other requests pertaining to the digest, send mail to
#perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
#sending perl questions to the -request address, I don't have time to
#answer them even if I did know the answer.
------------------------------
End of Perl-Users Digest V11 Issue 2688
***************************************