[31601] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 2860 Volume: 11

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Tue Mar 9 14:09:25 2010

Date: Tue, 9 Mar 2010 11: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           Tue, 9 Mar 2010     Volume: 11 Number: 2860

Today's topics:
        ? : statement not working as expected <patrickh@gmail.com>
    Re: ? : statement not working as expected <uri@StemSystems.com>
    Re: ? : statement not working as expected <tzz@lifelogs.com>
    Re: ? : statement not working as expected <patrickh@gmail.com>
    Re: Help on String to array ! <spamtrap@piven.net>
    Re: Help on String to array ! sln@netherlands.com
    Re: Help on String to array ! sln@netherlands.com
    Re: how to deliver a GUI app to an end user <cartercc@gmail.com>
    Re: how to deliver a GUI app to an end user <ben@morrow.me.uk>
        Simple regex question <dpich@polartel.com>
    Re: Simple regex question <cartercc@gmail.com>
    Re: Simple regex question <ben@morrow.me.uk>
    Re: Simple regex question sln@netherlands.com
    Re: Simple regex question <dpich@polartel.com>
    Re: Simple regex question <jurgenex@hotmail.com>
    Re: Simple regex question <jurgenex@hotmail.com>
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

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

Date: Tue, 9 Mar 2010 09:33:44 -0800 (PST)
From: Patrick Hartman <patrickh@gmail.com>
Subject: ? : statement not working as expected
Message-Id: <30103a9a-6633-4071-9761-f958210d85e3@a18g2000yqc.googlegroups.com>

Hi, I am trying to use ? : statements instead of if/else blocks
wherever possible to keep my code shorter. Below is a  conditional
statement that for some reason is not working as expected with the ? :
method:

#!/usr/bin/perl -w
use strict;

# image name
my $image = 'yf446_mk_nb_0_0_6_ia';

# break out seperate pieces
my($bare_style,$color,$brand,$slot1,$slot2,$shot,$type) = $image =~ m/
^(\w+)_(\w+)_(\w+)_(\w+)_(\w+)_(\w+)_(\w+)$/;


# this is not working as expected, returns the 'else' result
{
    my $style;
    $brand eq 'nb' ? $style = $bare_style . $color : $style =
$bare_style;
    print "?: version: $style\n";
}

# this works as expected
{
    my $style;

    if ($brand eq 'nb') {
        $style = $bare_style . $color;
    }
    else {
        $style = $bare_style;
    }

    print "if/else block version: $style\n";
}


Any ideas why this would not work in the first statement? I appreciate
it,

Patrick


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

Date: Tue, 09 Mar 2010 12:45:00 -0500
From: "Uri Guttman" <uri@StemSystems.com>
Subject: Re: ? : statement not working as expected
Message-Id: <87fx49crtv.fsf@quad.sysarch.com>

>>>>> "PH" == Patrick Hartman <patrickh@gmail.com> writes:

  PH> Hi, I am trying to use ? : statements instead of if/else blocks
  PH> wherever possible to keep my code shorter. Below is a  conditional
  PH> statement that for some reason is not working as expected with the ? :
  PH> method:

this is a classic newbie misuse of ?:.

  PH>     my $style;
  PH>     $brand eq 'nb' ? $style = $bare_style . $color : $style =
  PH> $bare_style;
  PH>     print "?: version: $style\n";

	$style = $brand eq 'nb' ? "$bare_style$color" : $bare_style ;

?: is meant to return an expression based on a boolean. it it NOT meant
to do side effects like assignment. you could fix your code with () but
it would still be wrong. the issue was precedence. the proper solution i
pasted above. the whole idea is to assign once but choose what to
assign. then the precedence (= is higher binding than ?:) works to your
advantage. 

and given what you are doing, there are other ways too:

	$style = $bare_style . ($brand eq 'nb' ? $color : '') ;

	$style = $bare_style ;
	$style .= $color if $brand eq 'nb' ;

uri

-- 
Uri Guttman  ------  uri@stemsystems.com  --------  http://www.sysarch.com --
-----  Perl Code Review , Architecture, Development, Training, Support ------
---------  Gourmet Hot Cocoa Mix  ----  http://bestfriendscocoa.com ---------


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

Date: Tue, 09 Mar 2010 12:06:04 -0600
From: Ted Zlatanov <tzz@lifelogs.com>
Subject: Re: ? : statement not working as expected
Message-Id: <87tyspe5f7.fsf@lifelogs.com>

On Tue, 9 Mar 2010 09:33:44 -0800 (PST) Patrick Hartman <patrickh@gmail.com> wrote: 

PH> # image name
PH> my $image = 'yf446_mk_nb_0_0_6_ia';

PH> # break out seperate pieces
PH> my($bare_style,$color,$brand,$slot1,$slot2,$shot,$type) = $image =~ m/
PH> ^(\w+)_(\w+)_(\w+)_(\w+)_(\w+)_(\w+)_(\w+)$/;

Doesn't it bother you that there's so much repetition there?

split('_', $image) will return a list of elements just as easily.

Also note that \w will match the '_' character as well so your
expression can only work accidentally.

PH> # this is not working as expected, returns the 'else' result
PH> {
PH>     my $style;
PH>     $brand eq 'nb' ? $style = $bare_style . $color : $style =
PH> $bare_style;
PH>     print "?: version: $style\n";
PH> }

Never, ever assign in a conditional.  Those who break that rule usually
do it for a very good reason (e.g. in an input loop) but 99% of the time
you simply should not do it.

PH> # this works as expected
PH> {
PH>     my $style;

PH>     if ($brand eq 'nb') {
PH>         $style = $bare_style . $color;
PH>     }
PH>     else {
PH>         $style = $bare_style;
PH>     }

PH>     print "if/else block version: $style\n";
PH> }

PH> Any ideas why this would not work in the first statement? I appreciate
PH> it,

Uri explained, but really, which one would you rather see in a program?

Ted


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

Date: Tue, 9 Mar 2010 10:13:13 -0800 (PST)
From: Patrick Hartman <patrickh@gmail.com>
Subject: Re: ? : statement not working as expected
Message-Id: <b8624739-fb40-40cf-90b8-3f91473a62cd@m37g2000yqf.googlegroups.com>

Thanks for the explanation and insight Uri and Ted, I appreciate it. I
am clearly using the conditional too often (yes I am a newbie). Also
Ted thanks for pointing out the problem with my expression, I forgot
that \w includes stuff besides letters.

Patrick


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

Date: Tue, 09 Mar 2010 09:44:37 -0600
From: Don Piven <spamtrap@piven.net>
Subject: Re: Help on String to array !
Message-Id: <YfCdnfKTCaR48QvWnZ2dnUVZ_jmdnZ2d@speakeasy.net>

John W. Krahn wrote:
> Don Piven wrote:

> No need for a loop:
> 
> my @arr = $hex =~ /[[:xdigit:]]{2}/g;
> 
> Also, you don't use capturing parentheses in your regular expression so 
> $1 will always be empty.

So much for my proofreading :-P  You're right, of course.


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

Date: Tue, 09 Mar 2010 09:57:23 -0800
From: sln@netherlands.com
Subject: Re: Help on String to array !
Message-Id: <o82dp5le51rvslspedu645krog4ln125p5@4ax.com>

On Tue, 9 Mar 2010 03:34:48 -0800 (PST), jis <jismagic@gmail.com> wrote:

>Guys,
>
>I have a string $hex which has lets assume "0012345689abcd"

>[snip]

>Unfortunately when i read big files of 4MB size it takes
>like 10mins before it completes execution. No good.
>(i couldnt split it like 00,12 but only like 0,0,1,2)
>
>Then I thought unpack wud be a better idea.
> @arr = unpack("H2",$data);  or
>@arr = unpack("H2*",$data);
>
Perl distributions for win32 have a problem with
native realloc(). On these, the larger the dynamic list
generated by the function, the longer it takes.
Linux doesen't have this problem.

In general, if you expect to be splitting up very
large data segments, its better to control the list
external to the function, where push() is better.

Of the 3 types of basic methods: substr/unpack/regexp,
the one thats the fastest seems to be substr().
Additionally, on win32 platforms, any method using a
push is far better.

My platform is Windows in generating the below data.
If you have Linux, your results will be different.
Post your numbers if you can.

-sln

Output:
--------------------
Size of bigstring = 560

Substr/push took: 0.00030303 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)
Unpack/list took: 0.000344038 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)
Unpack/push took: 0.000586033 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)
Regexp/list took: 0.000608206 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)
Regexp/push took: 0.000404835 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)

--------------------
Size of bigstring = 5600

Substr/push took: 0.002841 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)
Unpack/list took: 0.00334311 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)
Unpack/push took: 0.00657105 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)
Regexp/list took: 0.00673795 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)
Regexp/push took: 0.004076 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)

--------------------
Size of bigstring = 56000

Substr/push took: 0.0301139 wallclock secs ( 0.03 usr +  0.00 sys =  0.03 CPU)
Unpack/list took: 0.0458951 wallclock secs ( 0.05 usr +  0.00 sys =  0.05 CPU)
Unpack/push took: 0.0644789 wallclock secs ( 0.06 usr +  0.00 sys =  0.06 CPU)
Regexp/list took: 0.07149 wallclock secs ( 0.06 usr +  0.00 sys =  0.06 CPU)
Regexp/push took: 0.03965 wallclock secs ( 0.03 usr +  0.00 sys =  0.03 CPU)

--------------------
Size of bigstring = 560000

Substr/push took: 0.309315 wallclock secs ( 0.30 usr +  0.02 sys =  0.31 CPU)
Unpack/list took: 0.723145 wallclock secs ( 0.61 usr +  0.11 sys =  0.72 CPU)
Unpack/push took: 0.640141 wallclock secs ( 0.64 usr +  0.00 sys =  0.64 CPU)
Regexp/list took: 0.927701 wallclock secs ( 0.92 usr +  0.00 sys =  0.92 CPU)
Regexp/push took: 0.516143 wallclock secs ( 0.52 usr +  0.00 sys =  0.52 CPU)

--------------------
Size of bigstring = 5600000

Substr/push took: 3.79988 wallclock secs ( 3.75 usr +  0.06 sys =  3.81 CPU)
Unpack/list took: 40.0264 wallclock secs (34.97 usr +  5.06 sys = 40.03 CPU)
Unpack/push took: 6.71793 wallclock secs ( 6.70 usr +  0.01 sys =  6.72 CPU)
Regexp/list took: 34.6208 wallclock secs (34.56 usr +  0.06 sys = 34.63 CPU)
Regexp/push took: 7.93654 wallclock secs ( 7.89 usr +  0.05 sys =  7.94 CPU)

=======
for my $multiplier (40, 400, 4_000, 40_000, 400_000)
{
  my $bigstring = '0012345689abcd' x $multiplier;
  print "\n",'-'x20,"\nSize of bigstring = ",length($bigstring),"\n\n";

  ##
  {
    my ($val, $offs, @pairs) = ('',0);
    my $t0 = new Benchmark;
    while ($val=substr( $bigstring, $offs, 2))
    {
	push @pairs, $val;
	$offs+=2;
    } 
    my $t1 = new Benchmark;
    print "Substr/push took: ",timestr(timediff($t1, $t0)),"\n";
  }
  ##
  {
    my $t0 = new Benchmark;
    my @pairs = unpack '(a2)*', $bigstring;
    my $t1 = new Benchmark;
    print "Unpack/list took: ",timestr(timediff($t1, $t0)),"\n";
  }
  ##
  {
    my ($val, $offs, @pairs) = ('',0);
    my $t0 = new Benchmark;
    while ($val=unpack("x$offs a2", $bigstring) )
    {
	push @pairs, $val;
	$offs+=2;
    }
    my $t1 = new Benchmark;
    print "Unpack/push took: ",timestr(timediff($t1, $t0)),"\n";
  }
  ##
  {
    my $t0 = new Benchmark;
    my @pairs = $bigstring =~ /[0-9a-f]{2}/g;
    my $t1 = new Benchmark;
    print "Regexp/list took: ",timestr(timediff($t1, $t0)),"\n";
  }
  ##
  {
    my @pairs;
    my $t0 = new Benchmark;
    while ( $bigstring =~ /([0-9a-f]{2})/g ) {
	push @pairs, $1;
    }
    my $t1 = new Benchmark;
    print "Regexp/push took: ",timestr(timediff($t1, $t0)),"\n";
  }
}

__END__



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

Date: Tue, 09 Mar 2010 09:59:59 -0800
From: sln@netherlands.com
Subject: Re: Help on String to array !
Message-Id: <k33dp59i1m24gckmsqo4j7j8icmcqe5j5v@4ax.com>

On Tue, 09 Mar 2010 09:57:23 -0800, sln@netherlands.com wrote:
>=======
use strict;
use warnings;
use Benchmark ':hireswallclock';

>for my $multiplier (40, 400, 4_000, 40_000, 400_000)



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

Date: Tue, 9 Mar 2010 06:56:31 -0800 (PST)
From: ccc31807 <cartercc@gmail.com>
Subject: Re: how to deliver a GUI app to an end user
Message-Id: <8ad3dd9c-1f94-4eb7-805a-c47c2faca06c@e7g2000yqf.googlegroups.com>

On Mar 9, 8:22=A0am, "C.DeRykus" <dery...@gmail.com> wrote:
> Could you dodge IA's minefields by installing PuTTY on the end user's
> PC..(if it's not already)? =A0The scripts' permissions could be altered
> to be runnable only by a particular acct/pw accessible to the end
> user.

There are two issues here, both created by idiots. The first is the
prejudice against CLI applications, and I've been explicitly told not
to give non-IT users CLI scripts because they are incapable of running
them. PuTTy would fall into this category.

The second issue is a non-IT issue, namely the prejudice business
types have against in-house apps, not just Perl, but anything they
haven't paid a lot of money for purchased from a big company (like
Microsoft or Adobe or IBM.)

After sleeping on it, I think I'm going to recommend three courses of
action:
1 - Accept the solution I created, CLI and all.
2 - Bite the bullet and purchase licenses for the updated third party
software.
3 - Contract out the project to an independent developer.

It amazes me sometimes that non-functional requirements trump
functional requirements, and even if your app works perfectly and
completely meets all the functional requirements, it's rejected
because of some non-functional requirement that was neither explicitly
stated nor implicit in the original specification. It's as if you have
the fastest (by far) car in the race, but you lose the prize after the
fact because your car wasn't green.

And yeah, I'm pretty disgusted by the whole exercise.

CC.


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

Date: Tue, 9 Mar 2010 15:53:56 +0000
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: how to deliver a GUI app to an end user
Message-Id: <kh7i67-hth.ln1@osiris.mauzo.dyndns.org>


Quoth ccc31807 <cartercc@gmail.com>:
> On Mar 9, 8:22 am, "C.DeRykus" <dery...@gmail.com> wrote:
> > Could you dodge IA's minefields by installing PuTTY on the end user's
> > PC..(if it's not already)?  The scripts' permissions could be altered
> > to be runnable only by a particular acct/pw accessible to the end
> > user.
> 
> There are two issues here, both created by idiots. The first is the
> prejudice against CLI applications, and I've been explicitly told not
> to give non-IT users CLI scripts because they are incapable of running
> them. PuTTy would fall into this category.

This is not stupid. Even if you provided a curses-type 'gui', I suspect
most ordinary users would find being unable to use the mouse unbearably
confusing.

> The second issue is a non-IT issue, namely the prejudice business
> types have against in-house apps, not just Perl, but anything they
> haven't paid a lot of money for purchased from a big company (like
> Microsoft or Adobe or IBM.)

The reasoning behind this (wanting to avoid liability, by ensuring
someone has a contract) is not stupid, but too many people fail to
realise just how little in the way of safety their expensive contracts
are buying them. This is not helped by people like us dismissing the
whole concern out of hand.

> It amazes me sometimes that non-functional requirements trump
> functional requirements, and even if your app works perfectly and
> completely meets all the functional requirements, it's rejected
> because of some non-functional requirement that was neither explicitly
> stated nor implicit in the original specification. It's as if you have
> the fastest (by far) car in the race, but you lose the prize after the
> fact because your car wasn't green.

'Can be used by the intended user' is always an implicit functional
requirement. This includes 'can be installed on the appropriate machines
without violating security policy', which leaves open the option of
changing the policy to accommodate the app. It's part of your job as a
programmer to anticipate these unspoken requirements, since you
understand the problem better than those giving you the spec.

Ben



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

Date: Tue, 09 Mar 2010 08:31:48 -0600
From: Don Pich <dpich@polartel.com>
Subject: Simple regex question
Message-Id: <YPednXpwgpFJxgvWnZ2dnUVZ_gqdnZ2d@polarcomm.com>

I was wondering if there is a way to have perl check for a whole number?

In an equation, if I have 16/4, it will come up with 4 and will set the 
"check" to true.  If I have 16/5, it will come up with 3.2 and set the 
condition false.

Is there a method to get this into an if/else condition?


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

Date: Tue, 9 Mar 2010 06:45:35 -0800 (PST)
From: ccc31807 <cartercc@gmail.com>
Subject: Re: Simple regex question
Message-Id: <2802c2fb-4cef-4aa2-9047-0d5479b47f0d@g19g2000yqe.googlegroups.com>

On Mar 9, 9:31=A0am, Don Pich <dp...@polartel.com> wrote:
> I was wondering if there is a way to have perl check for a whole number?

Depends on the context as to how you would implement it. If you want
just digits, /[0-9]+/ will match one or more digits. Obviously you
would want to match the particular substring you are looking for,
since this RE would match any line that contained at least one digit.

CC.


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

Date: Tue, 9 Mar 2010 14:58:13 +0000
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: Simple regex question
Message-Id: <594i67-4bh.ln1@osiris.mauzo.dyndns.org>


Quoth Don Pich <dpich@polartel.com>:
> I was wondering if there is a way to have perl check for a whole number?

    int($x) == $x

or

    use POSIX qw/modf/;

    (modf $x)[0] == 0;

Ben



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

Date: Tue, 09 Mar 2010 07:19:51 -0800
From: sln@netherlands.com
Subject: Re: Simple regex question
Message-Id: <1npcp51m3e66lilidiq9q1fn0pcsrsh364@4ax.com>

On Tue, 09 Mar 2010 08:31:48 -0600, Don Pich <dpich@polartel.com> wrote:

>I was wondering if there is a way to have perl check for a whole number?
>
>In an equation, if I have 16/4, it will come up with 4 and will set the 
>"check" to true.  If I have 16/5, it will come up with 3.2 and set the 
>condition false.
>
>Is there a method to get this into an if/else condition?

print "whole 16/4\n" if !(16 % 4);
print "fraction 11/5\n" if 16 % 5;

Whats regex have to do with it?


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

Date: Tue, 09 Mar 2010 09:54:43 -0600
From: Don Pich <dpich@polartel.com>
Subject: Re: Simple regex question
Message-Id: <YPednXVwgpHe8gvWnZ2dnUVZ_goAAAAA@polarcomm.com>

Probably nothing.  But not being 100% efficient with Perl, I wasn't sure.

So let's add another twist to this.  The reason I asked this question is 
that I have a script that is prompting a user for an IP address.  I have 
them entering it one octet at a time.  The first three octets should be 
fine with whatever is place in stin.  But the forth octet will need to 
follow the subnet rules (i.e., the network address of a /30 would have 
the fourth octet as 0, 4, 8, 12, 16 etc.  The network address of a /29 
would have the fourth octet as 0, 8, 16, 24, 32).

How would I apply the following code so that it will follow subnet rules?

Here is the piece of the code that picks out the octets:

_____CODE______


# Find out the IP address
while ($OCT1_COUNT == 1)
{
  print "\nWhat is the First octet?  ";
  $OCT1 = <STDIN> ;
    if (($OCT1 < 0) || ($OCT1 > 255))
      {
	print "That number is not between 1 and 254.\n";
      }
    else
      {
	chomp ($OCT1);
	$OCT1_COUNT++;
      }
}
while ($OCT2_COUNT == 1)
{
  print "\nWhat is the Second octet?  ";
  $OCT2 = <STDIN> ;
    if (($OCT1 < 0) || ($OCT1 > 255))
      {
	print "That number is not between 1 and 254.\n";
      }
    else
      {
	chomp ($OCT2);
	$OCT2_COUNT++;
      }
}
while ($OCT3_COUNT == 1)
{
  print "\nWhat is the Third octet?  ";
  $OCT3 = <STDIN> ;
    if (($OCT1 < 0) || ($OCT1 > 255))
      {
	print "That number is not between 1 and 254.\n";
      }
    else
      {
	chomp ($OCT3);
	$OCT3_COUNT++;
      }
}
while ($OCT4_COUNT == 1)
{
  print "\nWhat is the Fourth octet?  ";
  $OCT4 = <STDIN> ;
    if (($OCT1 < 0) || ($OCT1 > 255))
      {
	print "That number is not between 1 and 254.\n";
      }
    else
      {
	chomp ($OCT4);
	$OCT4_COUNT++;
      }
}



_____/CODE_____


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

Date: Tue, 09 Mar 2010 10:12:29 -0800
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: Simple regex question
Message-Id: <6c3dp59ua7bg9g9i9r5v80792njrhd01qf@4ax.com>

Don Pich <dpich@polartel.com> wrote:

What does your question have to do with regular expressions (s.
Subject)?

>I was wondering if there is a way to have perl check for a whole number?

perldoc -f int

	if ($x == int $x) {...}

>In an equation, if I have 16/4, it will come up with 4 and will set the 
>"check" to true.  If I have 16/5, it will come up with 3.2 and set the 
>condition false.

I don't see an equation here, at most an expression. If you evaluate
that expression, then int() happens to work for this example, but it
won't in all cases because of the binary representation of floating
point numbers.

But it appears you are not being interested in "x begin a whole number"
at all  but instead you are interested in "is x dividable by y". And for
that question there is the modulo operator %.

jue


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

Date: Tue, 09 Mar 2010 10:19:28 -0800
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: Simple regex question
Message-Id: <bu3dp59k2m6deqfaeuvtl7pan6ksnqu3r9@4ax.com>

Don Pich <dpich@polartel.com> wrote:
>Probably nothing.  But not being 100% efficient with Perl, I wasn't sure.

What probably nothing? What weren't you sure about? Please quote
sufficient context, as has been a proven custom for over 2 decades, such
that your readers can understand what you are writing about.
 
>So let's add another twist to this.  The reason I asked this question is 
>that I have a script that is prompting a user for an IP address.  I have 
>them entering it one octet at a time.  The first three octets should be 
>fine with whatever is place in stin.  But the forth octet will need to 
>follow the subnet rules (i.e., the network address of a /30 would have 
>the fourth octet as 0, 4, 8, 12, 16 etc.  The network address of a /29 
>would have the fourth octet as 0, 8, 16, 24, 32).
>
>How would I apply the following code so that it will follow subnet rules?

If I were you I wouldn't. Instead I would use
http://search.cpan.org/~kraih/Net-Subnets-1.01/lib/Net/Subnets.pm or one
of its brethrens.

jue


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

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 2860
***************************************


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