[8826] in Perl-Users-Digest

home help back first fref pref prev next nref lref last post

Perl-Users Digest, Issue: 2443 Volume: 8

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Tue Apr 28 16:17:22 1998

Date: Tue, 28 Apr 98 13:00:36 -0700
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Tue, 28 Apr 1998     Volume: 8 Number: 2443

Today's topics:
    Re: 'each' and recursion, do they mix? (Mark-Jason Dominus)
    Re: 'each' and recursion, do they mix? (Kevin Reid)
        a way to remove files? <sharwood@cs.uiowa.edu>
    Re: a way to remove files? <brianm@kodak.com>
    Re: a way to remove files? <bmb@ginger.libs.uga.edu>
    Re: CGI help for a newbie <admin@hatsoft.com>
    Re: CGI help for a newbie <rootbeer@teleport.com>
        cgi newsgroup - was Re: Perl Scripts Newsgroup <dtbaker_@flash.net>
    Re: Changing @INC <jkry3025@comenius.ms.mff.cuni.cz>
    Re: Changing @INC <quentin@shaddam.amd.com>
    Re: Defending Perl (Mark-Jason Dominus)
    Re: Defending Perl (Abigail)
    Re: Defending Perl (Abigail)
    Re: Defending Perl (Mike Heins)
    Re: Getting the filehandle from a typeglob <fecund@fatnet.net>
    Re: Getting the filehandle from a typeglob <fecund@fatnet.net>
    Re: How do you make delay program? <sowmaster@juicepigs.com>
    Re: How to get times in different timezones? maurice@hevanet.com
    Re: How to load the module with calculated name? (Petr Prikryl)
    Re: http Reg Exp <camerond@mail.uca.edu>
    Re: http Reg Exp (Abigail)
    Re: Interpolation module (Kevin Reid)
        Digest Administrivia (Last modified: 8 Mar 97) (Perl-Users-Digest Admin)

----------------------------------------------------------------------

Date: 28 Apr 1998 14:27:07 -0400
From: mjd@op.net (Mark-Jason Dominus)
Subject: Re: 'each' and recursion, do they mix?
Message-Id: <6i571r$ppk$1@monet.op.net>
Keywords: fractious Grayson multiplication pug


In article <6i4ink$mlo$1@monet.op.net>, Mark-Jason Dominus <mjd@op.net> wrote:
>>Tom said:
>>>You could put it on the C<each> syntax node.  
>>
>>Yes, but the problem with putting anything on the syntax node in Perl
>>is that each one is Yet Another Way in which perl subroutines are not
>>real closures.  For example, [...]

In article <6i4uf3$jq8@srvr1.engin.umich.edu>,
Gurusamy Sarathy <gsar@engin.umich.edu> wrote:
>You're ass_u_ming flaws that simply aren't there.  The association
>with a node in the syntax tree would be implemented with a SV stashed
>on the CV's pad.

Ah, sure, that would work.

>That said, I'm sure you have some evidence of abnormalities wrt closures
>to make these categorical statements.  Please check with the latest
>devel versions, and feel free to send your observations to perlbug@perl.com.
>Honest, we'll see if they can be fixed.

I sent a note about one such to p5p back in January, but I'm not sure
what the result was.  The rest of this article is a rehash.

Chip said that the problem was well-known; I would have been more
specific in my earlier post, but I assumed everyone would know what I
meant.  The subjects of the messages were ``Shared ops among
closures'' and ``Lexical variables leak between closures''.  You
contributed to this thread, by the way. 

Here's an example:

	sub make_matcher {
	  my $pat = shift;
	  sub { my $s = shift; $s =~ /$pat/o };
	}

	$matches_foo = make_matcher('foo');	
	$matches_bar = make_matcher('bar');

	print &$matches_foo('food') ? "Yes\n" : "No\n";

	print &$matches_bar('food') ? "Yes\n" : "No\n";
	print &$matches_bar('barf') ? "Yes\n" : "No\n";

We would like this program to say yes-no-yes, but instead it says
yes-yes-no.  That is because the `closures' returned by `make-matcher'
are broken---they point to the *same* regex.  First-class regexes
would solve this problem, of course, but the real problem is that
there is one regex for each /..../ thing that appears lexically in the
code, whereas a lexical item like `my $s' can represent any number of
entirely different variables, one per closure.

This really is the problem I alluded to in my earlier post.  Here is
Chip's summary:

# The result of comiling a //o is stored in the REGEXP structure which
# is attached to the OP for the match.  And the key is this:  That OP
# is shared by all closures cloned from a given sub {}.

I would suspect (without testing) that other stateful operators
exhibit these same problems.   For example, what happens to scalar
 .. in a `closure'?  Similarly, `pos' is attched to the regex, so
matches_foo will reset the results of `pos' in matches_bar.  You can
undoubtedly think of other examples yourself.

Ah, rereading the p5p mail, I find that Chip even sent you a list.
You suggested that the compiled regex machine string be stored in the
pad, and Chip said:

# Perl has several operators that act this way: .., ..., ??, scalar
# glob() -- each of those has state in the OP.  There may be more.  If
# you want to change //o and that's your reason, then you need to
# change those too.

The discussion went on from there. (glob() has this problem;
 .. doesn't, blah blah.) If you actually fixed it with //o, I didn't get
to hear about it.

Anyway, I'll stick by my original statement, which was:
>>The problem with putting anything on the syntax node in Perl is that
>>each one is Yet Another Way in which perl subroutines are not real
>>closures.

You can't stick dynamic stuff on the syntax node, in general, because
of exactly this problem; you have to arrange for it to be in the pad,
or use some other trick to make sure that it is *not* in the syntax
node.



------------------------------

Date: Tue, 28 Apr 1998 15:36:15 -0400
From: kpreid@ibm.net (Kevin Reid)
Subject: Re: 'each' and recursion, do they mix?
Message-Id: <1d87anz.t7xy93phdznkN@slip166-72-108-227.ny.us.ibm.net>

Mark-Jason Dominus <mjd@op.net> wrote:

> Here's an example:
> 
>       sub make_matcher {
>         my $pat = shift;
>         sub { my $s = shift; $s =~ /$pat/o };
>       }
> 
>       $matches_foo = make_matcher('foo');     
>       $matches_bar = make_matcher('bar');
> 
>       print &$matches_foo('food') ? "Yes\n" : "No\n";
> 
>       print &$matches_bar('food') ? "Yes\n" : "No\n";
>       print &$matches_bar('barf') ? "Yes\n" : "No\n";
> 
> We would like this program to say yes-no-yes, but instead it says
> yes-yes-no.  That is because the `closures' returned by `make-matcher'
> are broken---they point to the *same* regex.  

OK, here's a workaround:

sub make_matcher {
  my $pat = shift;
  return eval "sub {shift =~ /$pat/}";
}

(The /o is unnecessary because $pat is being interpolated in the ""
instead of the //.)

> First-class regexes would solve this problem, of course, but the real
> problem is that there is one regex for each /..../ thing that appears
> lexically in the code, whereas a lexical item like `my $s' can represent
> any number of entirely different variables, one per closure.

Recursive subroutines also have multiple copies of $s.
 

This thread has been quite informative about the innards of Perl.

-- 
  Kevin Reid.      |         Macintosh.
   "I'm me."       |      Think different.


------------------------------

Date: Tue, 28 Apr 1998 13:30:23 -0500
From: shane michael harwood <sharwood@cs.uiowa.edu>
Subject: a way to remove files?
Message-Id: <3546203F.41C6@cs.uiowa.edu>

hello,
is there a way from within a perl script to remove files?


------------------------------

Date: Tue, 28 Apr 1998 15:25:17 -0400
From: Brian Mathis <brianm@kodak.com>
To: shane michael harwood <sharwood@cs.uiowa.edu>
Subject: Re: a way to remove files?
Message-Id: <35462D1D.5638C361@kodak.com>

This is a multi-part message in MIME format.
--------------7E7481EEF87C687A9EF0200C
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

shane michael harwood wrote:
> 
> hello,
> is there a way from within a perl script to remove files?

'unlink'

perldoc -tf unlink
for more info

Brian Mathis
--------------7E7481EEF87C687A9EF0200C
Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Card for Brian Mathis
Content-Disposition: attachment; filename="vcard.vcf"

begin:          vcard
fn:             Brian Mathis
n:              Mathis;Brian
org:            US&C Intranet Services
adr:            Mail Code: 01269;;343 State Street;Rochester;New York;14560-1269;6/15/KO, USA
email;internet: brianm@kodak.com
tel;work:       1(716)724-7960
tel;fax:        1(716)724-2496
x-mozilla-cpt:  ;0
x-mozilla-html: FALSE
version:        2.1
end:            vcard


--------------7E7481EEF87C687A9EF0200C--



------------------------------

Date: Tue, 28 Apr 1998 15:47:43 -0400
From: Brad Baxter <bmb@ginger.libs.uga.edu>
Subject: Re: a way to remove files?
Message-Id: <Pine.A41.3.96.980428154720.89038D-100000@ginger.libs.uga.edu>

On Tue, 28 Apr 1998, shane michael harwood wrote:
> hello,
> is there a way from within a perl script to remove files?

perldoc -f unlink

---
Brad Baxter, UGA



------------------------------

Date: Tue, 28 Apr 1998 11:04:18 -0700
From: "Henry Wolff" <admin@hatsoft.com>
Subject: Re: CGI help for a newbie
Message-Id: <354619d0.0@news.greatbasin.net>

"Internal Server Error: The server encountered an internal error
or misconfiguration and was unable to complete your request." generally
indicates a syntax error.

Henry Wolff
Send Some Virtual Postcards - FREE
http://www.hatsoft.com/webcard/index.html





------------------------------

Date: Tue, 28 Apr 1998 18:31:55 GMT
From: Tom Phoenix <rootbeer@teleport.com>
To: mcad999@geb.meteo.fr
Subject: Re: CGI help for a newbie
Message-Id: <Pine.GSO.3.96.980428113128.15049W-100000@user2.teleport.com>

On Tue, 28 Apr 1998 mcad999@geb.meteo.fr wrote:

> Subject: CGI help for a newbie

> Anyone see anything that could help me ???

When you're having trouble with a CGI program in Perl, you should first
look at the please-don't-be-offended-by-the-name Idiot's Guide to solving
such problems. It's available on CPAN.

   http://www.perl.com/CPAN/
   http://www.perl.org/CPAN/
   http://www.perl.org/CPAN/doc/FAQs/cgi/idiots-guide.html
   http://www.perl.org/CPAN/doc/manual/html/pod/

Hope this helps!

-- 
Tom Phoenix       Perl Training and Hacking       Esperanto
Randal Schwartz Case:     http://www.rahul.net/jeffrey/ovs/



------------------------------

Date: Tue, 28 Apr 1998 13:18:06 -0600
From: Dan Baker <dtbaker_@flash.net>
Subject: cgi newsgroup - was Re: Perl Scripts Newsgroup
Message-Id: <35462B6E.599A@flash.net>

Mikey Vaughan wrote:

> Is there a specific newsgroup that can offer assistance for writing cgi
> scripts??
----------------------

A great way to find out if there are newsgroups covering a particular
topic is to do some surfing with http://www.dejanews.com using a generic
subject that you think would be mentioned in the group. In your case,
try searching for "cgi"...

one of the groups you will turn up will be
news:comp.infosystems.www.authoring.cgi

the only slightly non standard thing about this group is that you need
to start the body of your first post with the word "passme" on a line by
itself.

Dan


------------------------------

Date: Tue, 28 Apr 1998 20:27:16 -0700
From: Jan Krynicky <jkry3025@comenius.ms.mff.cuni.cz>
Subject: Re: Changing @INC
Message-Id: <35469E14.6459@comenius.ms.mff.cuni.cz>

greene@gucc.org wrote:
> 
> In article <6huob9$t13$1@nntp2.ba.best.com>#1/1,
>   "Grimes" <grimes@msn.com> wrote:
> >
> > How do I change the default @INC list of paths?
> >
> 
> Use a BEGIN block to add/modify the INC list, for example
> 
> #!/usr/bin/perl -Tw
> 
> BEGIN {
>     # Add my cgi-bin directory to the @INC variable
>     push @INC, "/home/www/~myroot/cgi-bin" ;
>     require "mymodule.pl" ;
> }
> 
> ...
> 
> HTH,
> JAG

1. The preferred way is:
	
	use lib '/home/www/~myroot/cgi-bin';
	require "mymodule.pl" ;

   No need for BEGIN{}.

2. /(Sh|H)e/ asked how to modify the default path, not the @INC in one
particular 
script.

 The answer is: "Well it depends."

  a) GS/core port on Win32 (and maybe some Unixes as well)
      The system variable PERLLIB should contain the paths divided by
      a semicolon (or was it comma ?)

  b) The AS port on Win32
      registry
       [HKEY_LOCAL_MACHINE\SOFTWARE\ActiveWare\Perl5]
        lib : REG_SZ : list;of;paths

  c) some instalations store the path list in the compiled
     perl executable. AFAIK ofcourse
     In that case you would have to re-make perl.

Jenda


------------------------------

Date: 28 Apr 1998 14:02:36 -0500
From: Quentin  Fennessy <quentin@shaddam.amd.com>
Subject: Re: Changing @INC
Message-Id: <xim67jtvkfn.fsf@shaddam.amd.com>

>>>>> "Grimes" == Grimes  <grimes@msn.com> writes:

    Grimes> How do I change the default @INC list of paths?  I'm
    Grimes> running Win32 Perl 5.004.  I've searched through the
    [...]

perldoc perlfaq8, section titled:

=head2 How do I keep my own module/library directory?

-- 
Quentin Fennessy			AMD, Austin Texas
Secret hacker rule #11 - hackers read manuals


------------------------------

Date: 28 Apr 1998 14:29:49 -0400
From: mjd@op.net (Mark-Jason Dominus)
Subject: Re: Defending Perl
Message-Id: <6i576t$pq9$1@monet.op.net>


In article <6i3boi$jmp$2@client3.news.psi.net>,
Abigail <abigail@fnx.com> wrote:
>[Perl is hard to install] Because the questions are ... in an
>illogical order.

What, the alphabet isn't logical enough for you?

:-)


------------------------------

Date: 28 Apr 1998 18:53:43 GMT
From: abigail@fnx.com (Abigail)
Subject: Re: Defending Perl
Message-Id: <6i58jn$68r$1@client3.news.psi.net>

Tom Christiansen (tchrist@mox.perl.com) wrote on MDCCI September MCMXCIII
in <URL: news:6i51su$51t$1@csnews.cs.colorado.edu>:
++  [courtesy cc of this posting sent to cited author via email]
++ 
++ In comp.lang.perl.misc, 
++     abigail@fnx.com writes:
++ :I dunno about you, but I generally download software for the sake
++ :of using it, not to get a kick out of compiling it.
++ 
++ Well, Configure has special and perhaps unique appeal.
++ The "I spell a Eunice" stuff is terribly funny (see Wumpus).
++ The source code his a hoot.  (== hilarious)
++ 
++ :I *do* want to install Perl, but I have to run Configure to get
++ :it installed right.
++ 
++ With Configure (as opposed to configure), installation on er,
++ interestingly configured systems is at least possible.  Without it,
++ this would be impossible.  I know which I prefer. :-)


I'm not denying Configure is useful. It is. It just makes installation
more difficult.


Abigail
-- 
perl -wleprint -eqq-@{[ -eqw\\- -eJust -eanother -ePerl -eHacker -e\\-]}-


------------------------------

Date: 28 Apr 1998 18:58:01 GMT
From: abigail@fnx.com (Abigail)
Subject: Re: Defending Perl
Message-Id: <6i58rp$68r$2@client3.news.psi.net>

Mike Heins (mikeh@minivend.com) wrote on MDCCI September MCMXCIII in
<URL: news:35460824.0@news.one.net>:
++ Abigail <abigail@fnx.com> wrote:
++ > Jason Gloudon (jgloudon@hyssop.bbn.com.bbn.com) wrote on MDCCI September
++ > MCMXCIII in <URL: news:slrn6kad77.jrt.jgloudon@hyssop.bbn.com>:
++ > ++ Abigail <abigail@fnx.com> wrote:
++ > ++ .
++ > ++ >Installing gcc is easy. You just follow the manual. You don't get
++ > ++ >questions which makes you wondering "what the f*ck is it asking me?"
++ > ++ 
++ > ++ I think the real problem is that the instructions about 'Configure -des' occur
++ > ++ too far into the INSTALL file.  This of course is only a problem if you don't
++ > ++ read all of INSTALL.
++ 
++ > No. That's not the problem.
++ 
++ > The problem is Configure -des guesses wrong.
++ 
++ There are of course ways to get around this if you know what the 
++ wrong guesses will be -- I usually pre-edit the hints file or create my
++ own. I also frequently use Configure -d and then edit config.sh when prompted.

Of course. But does that mean installing Perl is simpler than installing
gcc? I don't think so. (Now try to figure out which variables to change
if you don't want to install in /usr/local. It's not impossible, but the
first time you try, you might miss a few things you need to change.)

++ The most common problem I have is Configure not recognizing when to
++ statically link an extension, and that is usually corrected easily by just
++ removing the extension name from dynamic_ext and putting it in static_ext.

Uhm, it even guesses the email address wrong....


Abigail
-- 
perl -wle '$, = " "; sub AUTOLOAD {($AUTOLOAD =~ /::(.*)/) [0];}
           print+Just (), another (), Perl (), Hacker ();'


------------------------------

Date: 28 Apr 98 19:45:38 GMT
From: mikeh@minivend.com (Mike Heins)
Subject: Re: Defending Perl
Message-Id: <354631e2.0@news.one.net>

Abigail <abigail@fnx.com> wrote:
> Mike Heins (mikeh@minivend.com) wrote on MDCCI September MCMXCIII in
> <URL: news:35460824.0@news.one.net>:
> ++ There are of course ways to get around this if you know what the 
> ++ wrong guesses will be -- I usually pre-edit the hints file or create my
> ++ own. I also frequently use Configure -d and then edit config.sh when prompted.

> Of course. But does that mean installing Perl is simpler than installing
> gcc? I don't think so. (Now try to figure out which variables to change
> if you don't want to install in /usr/local. It's not impossible, but the
> first time you try, you might miss a few things you need to change.)

I think it is easier when the hints file hits the mark. I have gotten
spoiled and don't like having to type in commands from a README. 8-)

This gets to the big point I have with Configure -- I think the first
question should be the install prefix, closely followed by the C compiler
test. Perl almost always gets the OS right, and it would make sense
(to me) to preload the hints file and let you back off of that later if
you are doing something funky.

> ++ The most common problem I have is Configure not recognizing when to
> ++ statically link an extension, and that is usually corrected easily by just
> ++ removing the extension name from dynamic_ext and putting it in static_ext.

> Uhm, it even guesses the email address wrong....

And as far as I know it maybe uses it to set a default in perlbug, so
I don't worry about it much.

Having written a configurator for a complex program, I can understand
how hard it is when you have a dependency on a set of external libraries
and programs; you take their foibles into account at a fair bit of risk,
because a new release can break everything you have tried to do.

Perl is farther toward the pinnacle of the pyramid than is GCC, and so it
is harder. The concept of an include directory and library directory has
not changed in UNIX for 20 years, and those are the only path dependencies
in GCC.

Regards,
Mike


------------------------------

Date: Tue, 28 Apr 1998 10:59:26 -0700
From: "yary h." <fecund@fatnet.net>
To: Tom Christiansen <tchrist@mox.perl.com>
Subject: Re: Getting the filehandle from a typeglob
Message-Id: <354618FE.6A33@fatnet.net>

Thanks for taking a look-- I'm getting confused.

#perl -w 
use FileHandle;
use strict;

# Copied from Tom C.
sub open_it {
    local *FH;
    my $file = shift;
    $file =~ s#^(\s)#./$1#;
    return open(FH, "< $file\0") && *FH;
}

# use it
my $handle = open_it('happy');
print "handle ",(ref($handle) ? ("of type ",ref($handle)) : "is '$handle'"),"\n";
autoflush $handle;


Gives me
handle is ''
Can't call method "autoflush" without a package or object reference at (script) line 15.

So is $handle really a scalar? And why is it the empty string?

I want my generating sub to return a filehandle, by hook or by crook!
I'm trying to hack gensym, with no success.


------------------------------

Date: Tue, 28 Apr 1998 11:30:59 -0700
From: "yary h." <fecund@fatnet.net>
Subject: Re: Getting the filehandle from a typeglob
Message-Id: <35462062.2A5E@fatnet.net>

Enough of this silliness-

I'll use a "new FileHandle".


------------------------------

Date: Tue, 28 Apr 1998 13:58:00 -0400
From: Bob Trieger <sowmaster@juicepigs.com>
To: otis@POPULUS.net
Subject: Re: How do you make delay program?
Message-Id: <354618A8.19F7@juicepigs.com>

otis@POPULUS.net wrote:
>   Bob Trieger <sowmaster@juicepigs.com> wrote:
> > Seong Y. Kim wrote:
> > > for ($a=0; $a<100000;$a++){;}
> > >
> > > Does anyone know how to make delay without running loops?
> > > Is there any delay modules or subroutines like delay(10000) in C
> > > language?
> >
> > When looking for a funtion in perl, it usually helps to search
> > perlfunc.html which was included with your perl distribution. In the
> > case of "delay" I turned up 2 functions in less than 10 seconds. Which
> > is a lot less time consuming than posting to c.l.p.m and waiting for a
> > sarcastic reply.
> >
> > If you installed the standard port of perl for win32 without changing
> > any paths you can find perlfunc.html at
> > file://c:/perl/html/lib/pod/perlfunc.html . Once you load that page, do
> > cntl-f to search it.
> 
> sleep(N) where N is the number in seconds.
> But do check those man pages or www.dejanews.com before posting, please.
> 
> Otis
> P.S.
> to the person who replied to this - it also takes less time to just give the
> right answer.

Would it really in the long term, you genius? Did you stop to think how
long it would take to post an answer for every perl function? I told him
where to find help on all perl fundtions. You gave him a quicky answer.
Who really helped?

-- 
Bob Trieger               |  Titanic: big boat, bigger
sowmaster@juicepigs.com   |           iceberg, big deal


------------------------------

Date: Tue, 28 Apr 1998 14:28:55 -0600
From: maurice@hevanet.com
Subject: Re: How to get times in different timezones?
Message-Id: <6i5aln$5vp$1@nnrp1.dejanews.com>

In article <6i3c5v$prl$1@tattoo.twinsun.com>,
  eggert@twinsun.com (Paul Eggert) wrote:
>
> mjtg@cus.cam.ac.uk (M.J.T. Guy) writes:
>
> >Note that on most systems, localtime remembers the TZ value on its first
> >call, and doesn't look at the environment variable again (an optimisation).
>
> That used to be true long ago, but POSIX.1 requires that localtime not
> cache TZ, and these days most implementations obey POSIX.1 in that respect.
>

I wrote a module called Time::Foreign a while back to solve this problem.
>From the POD:

       This module uses the time zone information files of the C
       library.  Usually, the TZ environment variable is used to
       specify the local time zone.  Unfortunately, on many
       systems, the C library caches the value of the TZ variable
       on the first call to localtime() so that later changes to
       the TZ variable are ignored.

       In order to circumvent this problem, and achieve some
       semblance of portability, this extension includes its own
       copy of the localtime.c code which does not cache the TZ
       variable.

It can be obtained at:

       http://olympia2.adhost.com/~maurice/Time-Foreign-1.03.tar.gz

I've used it successfully on Solaris, Linux, and FreeBSD machines.
If you have trouble with it, please let me know.

Maurice Aubrey <maurice@hevanet.com>

-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/   Now offering spam-free web-based newsreading


------------------------------

Date: 28 Apr 1998 18:44:03 GMT
From: prikryl@dcse.fee.vutbr.cz (Petr Prikryl)
Subject: Re: How to load the module with calculated name?
Message-Id: <6i581j$dql$1@boco.fee.vutbr.cz>

Petr Prikryl (prikryl@dcse.fee.vutbr.cz) wrote:
>Andrew M. Langmead (aml@world.std.com) wrote:
>>prikryl@dcse.fee.vutbr.cz (Petr Prikryl) writes:
>>>Please, how can I load the module when its  name was calculated (read 
>>>from the input text file into a variable). The module is placed in 
>>>the subdirectory which was also calculated (it is not in @INC).
>[...]
>>I guess you could also simply do:
>>eval "use lib '$directory';use $module";
>[...]
>I tried eval "use lib..." but it did not work.

Tom Phoenix mentioned in e-mail:
	That's because you did it incorrectly. (If you show us how you 
        did it, we may be able to tell you why it did not work. But if
        you merely say that it didn't, we can say only that it's 
        your fault. :-)

 ... so I will be more precise here.

I did use the following module in MyMod2.pm:
------------------------------------------------------------
package MyMod2;

require 5.004;
use strict;

sub start {
    print "This is MyMod2::start function\n";

    my $dir = "p:/tmp/modules";
    eval "use lib '$dir';" or die "Unsuccessful use lib '$dir': $@";

    foreach my $task ('task1', 'task2', 'task3') {
        eval "use $task;" or die "Unsuccessful use $task;";
        eval "${task}::analyze();";
    }
    return 0;
}

1;
------------------------------------------------------------

(Yes, I have run it under Windows -- the Ilya Zakharevich's
port of Perl 5.004_1 for OS/2 was used (rsx, cwsdpmi) --
the path shows that P was the disk -- just my personal
Novell network drive)

and I called the function from the script test2.pl:

------------------------------------------------------------
require 5.004;
use strict;

use MyMod2;

{
    MyMod2::start();
}
------------------------------------------------------------

Running the script, I have obtained the message:

This is MyMod2::start function
Unsuccessful use lib 'p:/tmp/modules':  at MyMod2.pm line 10.

I want to stress that storing the path in $dir is necessary
for me as the path is obtained dynamically.

Can anybody explain why it is wrong? (No doubt, it is.)

Thank you,
             Petr

P.S. This was about eval "use lib...". The other remark
in the separate message asks why "die does not cry".

--
Petr Prikryl (prikryl@dcse.fee.vutbr.cz)   http://www.fee.vutbr.cz/~prikryl/
TU of Brno, Dept. of Computer Sci. & Engineering;    tel. +420-(0)5-7275 218


------------------------------

Date: Tue, 28 Apr 1998 14:05:03 -0500
From: Cameron Dorey <camerond@mail.uca.edu>
To: abigail@fnx.com
Subject: Re: http Reg Exp
Message-Id: <3546285E.48290052@mail.uca.edu>

[cc'd to A]

Whoa, Abigail, are you going for the ETB regex award, or are you
actually ETB in another life (haven't seen him around here lately, or
maybe I just haven't been observant)?

Cameron

Abigail wrote:
> 
> [question snipped]
> 
> Sure.
> 
> $msg =~ s`
> (?:http://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.
> )*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)
> ){3}))(?::(?:\d+))?)(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F
> \d]{2}))|[;:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{
> 2}))|[;:@&=])*))*)(?:\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{
> 2}))|[;:@&=])*))?)?)|(?:ftp://(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?
> :%[a-fA-F\d]{2}))|[;?&=])*)(?::(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-
> fA-F\d]{2}))|[;?&=])*))?@)?(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-
> )*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?
> :\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?))(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!
> *'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'()
> ,]|(?:%[a-fA-F\d]{2}))|[?:@&=])*))*)(?:;type=[AIDaid])?)?)|(?:news:(?:
> (?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;/?:&=])+@(?:(?:(
> ?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[
> a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3})))|(?:[a-zA-Z](
> ?:[a-zA-Z\d]|[_.+-])*)|\*))|(?:nntp://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[
> a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d
> ])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?)/(?:[a-zA-Z](?:[a-zA-Z
> \d]|[_.+-])*)(?:/(?:\d+))?)|(?:telnet://(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+
> !*'(),]|(?:%[a-fA-F\d]{2}))|[;?&=])*)(?::(?:(?:(?:[a-zA-Z\d$\-_.+!*'()
> ,]|(?:%[a-fA-F\d]{2}))|[;?&=])*))?@)?(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a
> -zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d]
> )?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?))/?)|(?:gopher://(?:(?:
> (?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:
> (?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+
> ))?)(?:/(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))(?:(?:(?:[
> a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))*)(?:%09(?:(?:(?:[a-zA
> -Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*)(?:%09(?:(?:[a-zA-Z\d$
> \-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))*))?)?)?)?)|(?:wais://(?:(?:(?:
> (?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:
> [a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?
> )/(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)(?:(?:/(?:(?:[a-zA
> -Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)/(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(
> ?:%[a-fA-F\d]{2}))*))|\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]
> {2}))|[;:@&=])*))?)|(?:mailto:(?:(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%
> [a-fA-F\d]{2}))+))|(?:file://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]
> |-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:
> (?:\d+)(?:\.(?:\d+)){3}))|localhost)?/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'()
> ,]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(
> ?:%[a-fA-F\d]{2}))|[?:@&=])*))*))|(?:prospero://(?:(?:(?:(?:(?:[a-zA-Z
> \d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)
> *[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?)/(?:(?:(?:(?
> :[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?:(?:(?:[a-
> zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*))*)(?:(?:;(?:(?:(?:[
> a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&])*)=(?:(?:(?:[a-zA-Z\d
> $\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&])*)))*)|(?:ldap://(?:(?:(?:(?:
> (?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:
> [a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?
> ))?/(?:(?:(?:(?:(?:(?:(?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d])
> )|(?:%20))+|(?:OID|oid)\.(?:(?:\d+)(?:\.(?:\d+))*))(?:(?:%0[Aa])?(?:%2
> 0)*)=(?:(?:%0[Aa])?(?:%20)*))?(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F
> \d]{2}))*))(?:(?:(?:%0[Aa])?(?:%20)*)\+(?:(?:%0[Aa])?(?:%20)*)(?:(?:(?
> :(?:(?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID
> |oid)\.(?:(?:\d+)(?:\.(?:\d+))*))(?:(?:%0[Aa])?(?:%20)*)=(?:(?:%0[Aa])
> ?(?:%20)*))?(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)))*)(?:(
> ?:(?:(?:%0[Aa])?(?:%20)*)(?:[;,])(?:(?:%0[Aa])?(?:%20)*))(?:(?:(?:(?:(
> ?:(?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID|o
> id)\.(?:(?:\d+)(?:\.(?:\d+))*))(?:(?:%0[Aa])?(?:%20)*)=(?:(?:%0[Aa])?(
> ?:%20)*))?(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*))(?:(?:(?:
> %0[Aa])?(?:%20)*)\+(?:(?:%0[Aa])?(?:%20)*)(?:(?:(?:(?:(?:[a-zA-Z\d]|%(
> ?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID|oid)\.(?:(?:\d+)(?:
> \.(?:\d+))*))(?:(?:%0[Aa])?(?:%20)*)=(?:(?:%0[Aa])?(?:%20)*))?(?:(?:[a
> -zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)))*))*(?:(?:(?:%0[Aa])?(?:%2
> 0)*)(?:[;,])(?:(?:%0[Aa])?(?:%20)*))?)(?:\?(?:(?:(?:(?:[a-zA-Z\d$\-_.+
> !*'(),]|(?:%[a-fA-F\d]{2}))+)(?:,(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-f
> A-F\d]{2}))+))*)?)(?:\?(?:base|one|sub)(?:\?(?:((?:[a-zA-Z\d$\-_.+!*'(
> ),;/?:@&=]|(?:%[a-fA-F\d]{2}))+)))?)?)?)|(?:(?:z39\.50[rs])://(?:(?:(?
> :(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?
> :[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))
> ?)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+)(?:\+(?:(?:
> [a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+))*(?:\?(?:(?:[a-zA-Z\d$\-_
> .+!*'(),]|(?:%[a-fA-F\d]{2}))+))?)?(?:;esn=(?:(?:[a-zA-Z\d$\-_.+!*'(),
> ]|(?:%[a-fA-F\d]{2}))+))?(?:;rs=(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA
> -F\d]{2}))+)(?:\+(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+))*)
> ?))|(?:cid:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@&=
> ])*))|(?:mid:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@
> &=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@&=]
> )*))?)|(?:vemmi://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z
> \d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\
> .(?:\d+)){3}))(?::(?:\d+))?)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a
> -fA-F\d]{2}))|[/?:@&=])*)(?:(?:;(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a
> -fA-F\d]{2}))|[/?:@&])*)=(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d
> ]{2}))|[/?:@&])*))*))?)|(?:imap://(?:(?:(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+
> !*'(),]|(?:%[a-fA-F\d]{2}))|[&=~])+)(?:(?:;[Aa][Uu][Tt][Hh]=(?:\*|(?:(
> ?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~])+))))?)|(?:(?:;[
> Aa][Uu][Tt][Hh]=(?:\*|(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2
> }))|[&=~])+)))(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[
> &=~])+))?))@)?(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])
> ?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:
> \d+)){3}))(?::(?:\d+))?))/(?:(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:
> %[a-fA-F\d]{2}))|[&=~:@/])+)?;[Tt][Yy][Pp][Ee]=(?:[Ll](?:[Ii][Ss][Tt]|
> [Ss][Uu][Bb])))|(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))
> |[&=~:@/])+)(?:\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[
> &=~:@/])+))?(?:(?:;[Uu][Ii][Dd][Vv][Aa][Ll][Ii][Dd][Ii][Tt][Yy]=(?:[1-
> 9]\d*)))?)|(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~
> :@/])+)(?:(?:;[Uu][Ii][Dd][Vv][Aa][Ll][Ii][Dd][Ii][Tt][Yy]=(?:[1-9]\d*
> )))?(?:/;[Uu][Ii][Dd]=(?:[1-9]\d*))(?:(?:/;[Ss][Ee][Cc][Tt][Ii][Oo][Nn
> ]=(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~:@/])+)))?))
> )?)|(?:nfs:(?:(?://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-
> Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:
> \.(?:\d+)){3}))(?::(?:\d+))?)(?:(?:/(?:(?:(?:(?:(?:[a-zA-Z\d\$\-_.!~*'
> (),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?:(?:(?:[a-zA-Z\d\$\-_.!~*'(),
> ])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?)))?)|(?:/(?:(?:(?:(?:(?:[a-zA-Z\d
> \$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?:(?:(?:[a-zA-Z\d\$\
> -_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?))|(?:(?:(?:(?:(?:[a-zA-
> Z\d\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?:(?:(?:[a-zA-Z\d
> \$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?)))
> `<a href = "$&">$&</a>`xg;
> 
> See also <URL:http://cthulhu.mandrake.net/%7Eabigail/Perl/url2.html>
> 
> Abigail
> --
> perl -we 'print split /(?=(.*))/s => "Just another Perl Hacker\n";'


------------------------------

Date: 28 Apr 1998 19:27:28 GMT
From: abigail@fnx.com (Abigail)
Subject: Re: http Reg Exp
Message-Id: <6i5aj0$d5c$1@client2.news.psi.net>

brian d foy (comdog@computerdog.com) wrote on MDCCI September MCMXCIII in
<URL: news:comdog-ya02408000R2804981317460001@news.panix.com>:
++ In article <6i3et4$f2r$4@comdyn.comdyn.com.au>, mgjv@comdyn.com.au (Martien Verbruggen) posted:
++ 
++ >In article <6i3cu0$jmp$4@client3.news.psi.net>,
++ >        abigail@fnx.com (Abigail) writes:
++ 
++ >> RFC translates easily into a regex.
++ >> See <URL:http://cthulhu.mandrake.net/%7Eabigail/Perl/url2.pl>
++ >
++ >Indeed, The RFC can be translated into a regex, but that still doesn't
++ >make the original problem possible;  Extract URLs from some plain text
++ 
++ >If you hadn't conveniently snipped the examples I put in my post, you
++ >would have known what I meant. How do you extract the following URLs?
++ >
++ >URL1: http://myserver.com/dir/file.
++ >URL2: http://myserver.com/dir/file
++ >
++ >(note the minimal difference?)

Yes, I do. And if "http://myserver.com/dir/file." is a perfectly
valid URL. So is "http://myserver.com/di" for that matter, or even
"http://myserver.co". Without additional information, there cannot be a
way of knowing whether the trailing dot in "http://myserver.com/dir/file."
belongs in the URL or not.



Abigail
-- 
perl5.004 -wMMath::BigInt -e'$^V=new Math::BigInt+qq;$^F$^W783$[$%9889$^F47$|88768$^W596577669$%$^W5$^F3364$[$^W$^F$|838747$[8889739$%$|$^F673$%$^W98$^F76777$=56;;$^U=substr($]=>$|=>5)*(q.25..($^W=@^V))=>do{print+chr$^V%$^U;$^V/=$^U}while$^V!=$^W'


------------------------------

Date: Tue, 28 Apr 1998 15:36:17 -0400
From: kpreid@ibm.net (Kevin Reid)
Subject: Re: Interpolation module
Message-Id: <1d87c0y.14pwqusa31999N@slip166-72-108-227.ny.us.ibm.net>

Jan Krynicky <jkry3025@comenius.ms.mff.cuni.cz> wrote:

> BTW: Does any of the "Real Gurus"(tm) know why
> $fun = \&length doesn't work? Or even better how to make it work?
>  ( apart from $fun = sub {length $_[0]}; )

Sure. length is an operator, not a function.

-- 
  Kevin Reid.      |         Macintosh.
   "I'm me."       |      Think different.


------------------------------

Date: 8 Mar 97 21:33:47 GMT (Last modified)
From: Perl-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Digest Administrivia (Last modified: 8 Mar 97)
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.  

To submit articles to comp.lang.perl.misc (and this Digest), send your
article to perl-users@ruby.oce.orst.edu.

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.

The Meta-FAQ, an article containing information about the FAQ, is
available by requesting "send perl-users meta-faq". The real FAQ, as it
appeared last in the newsgroup, can be retrieved with the request "send
perl-users FAQ". Due to their sizes, neither the Meta-FAQ nor the FAQ
are included in the digest.

The "mini-FAQ", which is an updated version of the Meta-FAQ, is
available by requesting "send perl-users mini-faq". It appears twice
weekly in the group, but is not distributed in the digest.

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 V8 Issue 2443
**************************************

home help back first fref pref prev next nref lref last post