[32055] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 3319 Volume: 11

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Mon Mar 14 18:09:23 2011

Date: Mon, 14 Mar 2011 15:09:07 -0700 (PDT)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Mon, 14 Mar 2011     Volume: 11 Number: 3319

Today's topics:
        =?UTF-8?B?SG9wY3JvZnTigJNLYXJwIGFsZ29yaXRobQ==?= <nospam.gravitalsun@hotmail.com.nospam>
    Re: Autovivification <uri@StemSystems.com>
    Re: convenient module to take statistics for hashed str <ela@yantai.org>
    Re: convenient module to take statistics for hashed str <nospam.gravitalsun@hotmail.com.nospam>
    Re: convenient module to take statistics for hashed str <ela@yantai.org>
    Re: convenient module to take statistics for hashed str <nospam.gravitalsun@hotmail.com.nospam>
    Re: convenient module to take statistics for hashed str <nospam.gravitalsun@hotmail.com.nospam>
    Re: convenient module to take statistics for hashed str <tadmc@seesig.invalid>
    Re: FAQ 2.2 How can I get a binary version of perl? <rvtol+usenet@xs4all.nl>
    Re: going from CPAN to RPM <agw@dsm.fordham.edu>
    Re: Ok, simpler..... <cartercc@gmail.com>
    Re: Ok, simpler..... <tzz@lifelogs.com>
    Re: Ok, simpler..... <hjp-usenet2@hjp.at>
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

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

Date: Mon, 14 Mar 2011 20:26:33 +0200
From: George Mpouras <nospam.gravitalsun@hotmail.com.nospam>
Subject: =?UTF-8?B?SG9wY3JvZnTigJNLYXJwIGFsZ29yaXRobQ==?=
Message-Id: <illmkp$1v4n$1@news.ntua.gr>

Does any one have/know any Perl implementation of Hopcroft Karp 
algorithm ? It is described at this wikipedia article:
http://en.wikipedia.org/wiki/Hopcroft–Karp_algorithm


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

Date: Mon, 14 Mar 2011 12:32:44 -0400
From: "Uri Guttman" <uri@StemSystems.com>
Subject: Re: Autovivification
Message-Id: <871v294q8j.fsf@quad.sysarch.com>

>>>>> "PJH" == Peter J Holzer <hjp-usenet2@hjp.at> writes:

  PJH> Otherwise there is no lvalue context in

  PJH>     if ($x->[0][0]) { ... }

the $x->[0] is the lvalue there. without autoviv, you can't ever check
whether the next level has a [0].

  >> this is from perlref:
  >> 
  >> This is one of the cases we mentioned earlier in which
  >> references could spring into existence when in an lvalue
  >> context.

  PJH> Note that "This" refers to:

  PJH>                $array[$x]->{"foo"}->[0] = "January";

  PJH> which is an lvalue context (it is on the *l*eft side of an assignment).


that is lvalue in two places. the {foo} and the [0] are both
lvalues. the {foo} is implied and the [0] is explicit.

  >> autivivification happens when you must have a ref or the
  >> whole expression dies.

  PJH> Well, that's just the case for the first example. I don't have a ref and
  PJH> the whole expression dies. So you say that autovivification should
  PJH> happen in this case.

not at the top level. that can be handled without autoviv. the middle
levels are where it happens by implication even without assignment to
the lowest level.

  PJH> (OTOH, there is no reason why $x->[0][0] (or @{ $x->[0] }) has to die:
  PJH> It could just return undef, just like an access to a non-existent array
  PJH> element returns undef)

it DOES return undef. autoviv is a side effect of the access to the
lowest level. perl can't tell the difference between

	$foo->{bar}[0] = 1 ;

and
	if ( $foo->{bar}[0] )

from the perspective of {bar}. {bar} needs to be filled in with a ref in
both cases to access [0].

  >> just reading a top level ref or deref like print
  >> @{$ref->[0]} isn't enough. pushing to that expression is enough as the
  >> missing array ref is now being used to store data so it is an lvalue.

  PJH> push naturally creates an lvalue context. $x->[0][0] doesn't.

again, the middle level is implied.

  >> it does make sense when you think about it in an lvalue context.

  PJH> No, that makes even less sense, because there is no intrinsic lvalue
  PJH> context. It probably does make sense if you look at it from a
  PJH> implementation POV ("it was simpler that way") or a historic POV
  PJH> (compatibility with pre-strict behaviour).

this is what happens. it is documented (if poorly). middle level implied
refs get autovivified. see my autoviv article at

	http://sysarch.com/Perl/autoviv.txt

written a while back and helpful.

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: Mon, 14 Mar 2011 20:36:51 -0700
From: "ela" <ela@yantai.org>
Subject: Re: convenient module to take statistics for hashed structures?
Message-Id: <ilkui6$mhk$1@ijustice.itsc.cuhk.edu.hk>


"George Mpouras" <nospam.gravitalsun@hotmail.com.nospam> wrote in message 
news:ilklas$qos$1@news.ntua.gr...
>
> "ela" <ela@yantai.org> wrote in message 
> news:ilgvng$7ec$1@ijustice.itsc.cuhk.edu.hk...
>> __DATA__
>> ID    B    C    D    E    F    G    H
>> 1    3    7    9    3    4    2    3
>> 1    3    7    9    3    4    2    2
>> 1    3    7    9    5    8    6    6
>> 1    3    7    9    3    4    2    3
>> 2    4    7    9    3    4    2    1
>> 2    4    7    9    3    4    2    2
>> 2    4    7    9    3    4    2    3
>> 2    4    7    9    3    4    2    3
>>
>> For each ID (the above example has two (1 and 2)), I want to identify the 
>> "last common
>> ancestor: LCA, H being higher preference than B " based on some defined 
>> threshold. If the threshold is set to 100%, then the LCA of ID 1 is D=9; 
>> if set it to 75%, then it is F=2. For ID 2 (100%, G=2; 75%, G=2; 50% H=3)
>>
>> While hash is good at allocating different instance easily, I don't know
>> whether perl supports simple architecture to get the max/min. For the
>> following code,
>>
>> @array
>>
>> For each row
>>    for ($i=0; $i<$numcol; $i++)
>>        $array[$i]{$key}++;
>>
>>
>> if just for B, I know the following should be written in this way:
>>
>> foreach $key (keys %B) {     $Bpertpot{$key} = $B{$key}/$total;    }
>>
>> for ($i=0; $i<$numcol; $i++) {
>> $maxcol[$i] = 0;
>> foreach $key (keys %Bpertpot) { if ($Bpertpot{$key}> $maxcol[$i]) {
>> $maxcol[$i] = $Bpertpot{$key};    }
>> }
>>
>> but then I don't know how to do that for array of hash to traverse... 
>> i.e.
>> replace the %B and %Bpertpot to something that is compatible with the 
>> array
>> structure... In fact, I wonder if there is already well-established 
>> modules
>> that may have handled this kind of max-min statistics problems that seem 
>> to
>> encounter frequently in the business sector...
>>
>>
>>
>
>
> set it to 75%, then it is F=2
> I do not see any 2 at F column. I have problem to undestand what you 
> mean/what you want.
Thanks for correcting the mistake. It is G=2 (2,2,6,2; so fulfilling the 75% 
requirement) and not F=2. Always check from H (or the last column first). 
H's majority is 3, for only 50% abundant, and then look up one by one (F, E, 
D, ...). Each ID (without knowing how many incidents beforehand) has to 
repeat the same process again and again. 




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

Date: Mon, 14 Mar 2011 14:35:08 +0200
From: "George Mpouras" <nospam.gravitalsun@hotmail.com.nospam>
Subject: Re: convenient module to take statistics for hashed structures?
Message-Id: <ill20h$2ech$1@news.ntua.gr>


"ela" <ela@yantai.org> wrote in message 
news:ilkui6$mhk$1@ijustice.itsc.cuhk.edu.hk...
>
> "George Mpouras" <nospam.gravitalsun@hotmail.com.nospam> wrote in message 
> news:ilklas$qos$1@news.ntua.gr...
>>
>> "ela" <ela@yantai.org> wrote in message 
>> news:ilgvng$7ec$1@ijustice.itsc.cuhk.edu.hk...
>>> __DATA__
>>> ID    B    C    D    E    F    G    H
>>> 1    3    7    9    3    4    2    3
>>> 1    3    7    9    3    4    2    2
>>> 1    3    7    9    5    8    6    6
>>> 1    3    7    9    3    4    2    3
>>> 2    4    7    9    3    4    2    1
>>> 2    4    7    9    3    4    2    2
>>> 2    4    7    9    3    4    2    3
>>> 2    4    7    9    3    4    2    3
>>>
>>> For each ID (the above example has two (1 and 2)), I want to identify 
>>> the "last common
>>> ancestor: LCA, H being higher preference than B " based on some defined 
>>> threshold. If the threshold is set to 100%, then the LCA of ID 1 is D=9; 
>>> if set it to 75%, then it is F=2. For ID 2 (100%, G=2; 75%, G=2; 50% 
>>> H=3)
>>>
>>> While hash is good at allocating different instance easily, I don't know
>>> whether perl supports simple architecture to get the max/min. For the
>>> following code,
>>>
>>> @array
>>>
>>> For each row
>>>    for ($i=0; $i<$numcol; $i++)
>>>        $array[$i]{$key}++;
>>>
>>>
>>> if just for B, I know the following should be written in this way:
>>>
>>> foreach $key (keys %B) {     $Bpertpot{$key} = $B{$key}/$total;    }
>>>
>>> for ($i=0; $i<$numcol; $i++) {
>>> $maxcol[$i] = 0;
>>> foreach $key (keys %Bpertpot) { if ($Bpertpot{$key}> $maxcol[$i]) {
>>> $maxcol[$i] = $Bpertpot{$key};    }
>>> }
>>>
>>> but then I don't know how to do that for array of hash to traverse... 
>>> i.e.
>>> replace the %B and %Bpertpot to something that is compatible with the 
>>> array
>>> structure... In fact, I wonder if there is already well-established 
>>> modules
>>> that may have handled this kind of max-min statistics problems that seem 
>>> to
>>> encounter frequently in the business sector...
>>>
>>>
>>>
>>
>>
>> set it to 75%, then it is F=2
>> I do not see any 2 at F column. I have problem to undestand what you 
>> mean/what you want.
> Thanks for correcting the mistake. It is G=2 (2,2,6,2; so fulfilling the 
> 75% requirement) and not F=2. Always check from H (or the last column 
> first). H's majority is 3, for only 50% abundant, and then look up one by 
> one (F, E, D, ...). Each ID (without knowing how many incidents 
> beforehand) has to repeat the same process again and again.
>


#!/usr/bin/perl
#
# ok here is your homework .
# next time try not cheat , because even if
# you pass the lesson, will not learn !



my %col;
my %data;
ReadData();

$_ = query(1,100);
print "id=1, thr=100% -> Field=$_->[0],Value=@{$_->[1]}\n";

$_ = query(1,75);
print "id=1, thr=100% -> Field=$_->[0],Value=@{$_->[1]}\n";

$_ = query(2,100);
print "id=2, thr=100% -> Field=$_->[0],Value=@{$_->[1]}\n";

$_ = query(2,75);
print "id=2, thr=75% -> Field=$_->[0],Value=@{$_->[1]}\n";

$_ = query(2,50);
print "id=2, thr=50% -> Field=$_->[0],Value=@{$_->[1]}\n";

$_ = query(2,25);
print "id=2, thr=25% -> Field=$_->[0],Value=@{$_->[1]}\n";



sub ReadData {
while(<DATA>){
chomp;
my @a = split /\s+/;
unless (exists $col{1}){@col{1..$#a}=@a[1..$#a];next}
++$data{$a[0]}->{lines};
for(my $i=1;$i<=$#a;$i++){
++$data{$a[0]}->{field}->{$col{$i}}->{data}->{$a[$i]} } }
foreach my $id (keys %data) {
foreach my $field (keys %{$data{$id}->{field}} ) {
foreach my $item (keys %{$data{$id}->{field}->{$field}->{data}}  ) {
push @{ $data{$id}->{field}->{$field}->{rank}->{ 100*( 
$data{$id}->{field}->{$field}->{data}->{$item} / $data{$id}->{lines} ) } } , 
$item}}}
#use Data::Dumper; print Dumper(\%data);exit;
}


sub query {
my ($id,$rank)=@_;
 foreach my $field (reverse sort keys %col) {
  if ( exists  $data{$id}->{field}->{$col{$field}}->{rank}->{ $rank }  ) {
  return [ $col{$field}, 
$data{$id}->{field}->{$col{$field}}->{rank}->{$rank}] }
 }
['',[]]
}




__DATA__
ID   B    C    D    E    F    G    H
1    3    7    9    3    4    2    3
1    3    7    9    3    4    2    2
1    3    7    9    5    8    6    6
1    3    7    9    3    4    2    3
2    4    7    9    3    4    2    1
2    4    7    9    3    4    2    2
2    4    7    9    3    4    2    3
2    4    7    9    3    4    2    3











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

Date: Tue, 15 Mar 2011 00:49:55 -0700
From: "ela" <ela@yantai.org>
Subject: Re: convenient module to take statistics for hashed structures?
Message-Id: <illdcm$rqn$1@ijustice.itsc.cuhk.edu.hk>


"George Mpouras" <nospam.gravitalsun@hotmail.com.nospam> wrote in message 
news:ill20h$2ech$1@news.ntua.gr...

>
> #!/usr/bin/perl
> #
> # ok here is your homework .
> # next time try not cheat , because even if
> # you pass the lesson, will not learn !
>

Thanks for your solution and I'd like to know more about what your codes are 
doing...

$col{1} #what does 1 refer to?
@col{1..$#a} #array of hash?
@a[1..$#a] #array of what?

++$data{$a[0]}->{lines}; #hash of hash? and an arbitrary name "line" is 
given?
++$data{$a[0]}->{field}->{$col{$i}}->{data}->{$a[$i]} } }   #oh, this line 
is really... hard to know why arrow can be used again and again....

push @{ $data{$id}->{field}->{$field}->{rank}->{ 100*( 
$data{$id}->{field}->{$field}->{data}->{$item} / $data{$id}->{lines} ) } } , 
$item}}}    #what advantage of using push here?

['',[]]    #what is this...?!




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

Date: Mon, 14 Mar 2011 18:40:51 +0200
From: George Mpouras <nospam.gravitalsun@hotmail.com.nospam>
Subject: Re: convenient module to take statistics for hashed structures?
Message-Id: <illgek$19ai$1@news.ntua.gr>

Sorry for the silly joke at the comment.


> $col{1} #what does 1 refer to?
this is a just a check to see if we are reading the first line with the 
column names


 > $#a
is the last item index of an array. Synonymous are
$array[ -1 + scalar @array ]
$array[-1]

> @col{1..$#a} #array of hash?
This is called hash slice; used to create a hash from an array
my @array = qw/a b c/
my %hash  = ();
@hash{ @array } = some values


> @a[1..$#a] #array of what?
Oh some array elements
@array[2..4] -> $array[2], $array[3], $array[4]


>
> ++$data{$a[0]}->{lines}; #hash of hash? and an arbitrary name "line" is
> given?
Lets keep the total lines of every ID to a hash reference with key "lines"



> ++$data{$a[0]}->{field}->{$col{$i}}->{data}->{$a[$i]} } }   #oh, this line
> is really... hard to know why arrow can be used again and again....
Arrows are not neccassery, but I found them beautifull
we want to keep our data isolate to a different sub-hash with key data


> push @{ $data{$id}->{field}->{$field}->{rank}->{ 100*(
> $data{$id}->{field}->{$field}->{data}->{$item} / $data{$id}->{lines} ) } } ,
> $item}}}    #what advantage of using push here?

Here we want to keep all the occasions with the same threshold !
So we if for example there are four different numbers , we can report 
back all of the, if the questioned threshold is 25%


> ['',[]]    #what is this...?!
This the default answer if no threshiold is found. They are to items the 
'' , and an empty array representing the (no) found values.



If you check what I ve done you will find out that it can be re-written 
to be almost 10 times faster, but it is goog enough for a start.


Peace.


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

Date: Mon, 14 Mar 2011 18:52:36 +0200
From: George Mpouras <nospam.gravitalsun@hotmail.com.nospam>
Subject: Re: convenient module to take statistics for hashed structures?
Message-Id: <illh4l$1b24$1@news.ntua.gr>

uncomment the line
#use Data::Dumper; print Dumper(\%data);exit;
and you will undestand the underlying logic by your own.



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

Date: Mon, 14 Mar 2011 13:33:31 -0500
From: Tad McClellan <tadmc@seesig.invalid>
Subject: Re: convenient module to take statistics for hashed structures?
Message-Id: <slrninsnib.j9k.tadmc@tadbox.sbcglobal.net>

ela <ela@yantai.org> wrote:
>
> "George Mpouras" <nospam.gravitalsun@hotmail.com.nospam> wrote in message 
> news:ill20h$2ech$1@news.ntua.gr...

> $col{1} #what does 1 refer to?


The value in the %col hash indexed by the "1" key.


> @col{1..$#a} #array of hash?


No, a "hash slice".


> @a[1..$#a] #array of what?


An "array slice".


See the "Slices" section in

    perldoc perldata


> ['',[]]    #what is this...?!


an anonymous array that contains 2 elements, an (empty) string and
a reference to another (empty) anonymous array.


-- 
Tad McClellan
email: perl -le "print scalar reverse qq/moc.liamg\100cm.j.dat/"
The above message is a Usenet post.
I don't recall having given anyone permission to use it on a Web site.


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

Date: Mon, 14 Mar 2011 22:47:17 +0100
From: "Dr.Ruud" <rvtol+usenet@xs4all.nl>
Subject: Re: FAQ 2.2 How can I get a binary version of perl?
Message-Id: <4d7e8ce5$0$81474$e4fe514c@news.xs4all.nl>


Another nice one:

   Citrus Perl
   http://www.cava.co.uk/

-- 
Ruud


On 2011-03-13 23:00, PerlFAQ Server wrote:
> This is an excerpt from the latest version perlfaq2.pod, which
> comes with the standard Perl distribution. These postings aim to
> reduce the number of repeated questions as well as allow the community
> to review and update the answers. The latest version of the complete
> perlfaq is at http://faq.perl.org .
>
> --------------------------------------------------------------------
>
> 2.2: How can I get a binary version of perl?
>
>      (contributed by brian d foy)
>
>      ActiveState: Windows, Linux, Mac OS X, Solaris, AIX and HP-UX
>
>              http://www.activestate.com/
>
>      Sunfreeware.com: Solaris 2.5 to Solaris 10 (SPARC and x86)
>
>              http://www.sunfreeware.com/
>
>      Strawberry Perl: Windows, Perl 5.8.8 and 5.10.0
>
>              http://www.strawberryperl.com
>
>      IndigoPerl: Windows
>
>              http://indigostar.com/



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

Date: Mon, 14 Mar 2011 08:18:47 -0400
From: Art Werschulz <agw@dsm.fordham.edu>
Subject: Re: going from CPAN to RPM
Message-Id: <2m1v29c2u0.fsf@sobolev.dsm.fordham.edu>

Hi.

Martijn Lievaart <m@rtij.nl.invlalid> writes:

> When I do a "rpm -ql $(rpm -qa perl-*) | grep /usr/lib/perl5 | less" I 
> see the modules about 50/50 using /usr/lib/perl/5.10.0/ and /usr/lib/
> perl5/vendor_perl/5.10.0/. So that is not reliable.

The command
  rpm -qa perl-* 
produces no results for me, but 
  rpm -qa | grep ^perl-
works okay.  But at any rate
  rpm -ql `rpm -qa perl-*` | grep /usr/lib/perl5 | grep vendor_perl
produces no output whatsoever.


-- 
Art Werschulz (8-{)}   "Metaphors be with you."  -- bumper sticker
GCS/M (GAT): d? -p+ c++ l++ u+ P++ e--- m* s n+ h f g+ w+ t+ r- 
Net: agw@dsm.fordham.edu http://www.dsm.fordham.edu/~agw
Phone:   Fordham U. (212) 636-6325, Columbia U. (646) 775-6035


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

Date: Mon, 14 Mar 2011 08:51:08 -0700 (PDT)
From: ccc31807 <cartercc@gmail.com>
Subject: Re: Ok, simpler.....
Message-Id: <5a9af73a-7c71-4972-a4e3-1f3424183b30@f31g2000pri.googlegroups.com>

On Mar 13, 9:47=A0am, mer...@stonehenge.com (Randal L. Schwartz)
> ccc31807> "Build a man a fire and you warm him for an hour. Set him on
> ccc31807> fire and you warm him for a lifetime."
>
> =A0 =A0 "Give a man a fire, and he's warm for an hour.
> =A0 =A0 Set a man on fire, and he's warm for the rest of his life!"

I've never heard your version. Some points: (1) You 'build' a fire,
not 'give' a fire. How do you give a man a fire? When you give a man a
fish, he consumes it. When you build a fire, the man consumes the heat
from the fire, not the fire itself. (2) The humor partly comes from
the action of the actor, not the action of the receiver of the
action ... the confusion of charity and murder. (3) The conflation of
'lifetime' with 'the rest of his life' is intention and subtle. You
would expect a listener to understand that in this case, 'lifetime'
would imply a shorter span of time rather than a longer span of time
than we normally expect in the customary usage of the word
'lifetime.' (4) The parallel with the fish version is explicit -- your
version loses the parallelism.

> Please leave the comedy to the professional next time... :)

I /am/ a professional, tho' not a professional humorist. Are you a
professional humorist?

CC.


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

Date: Mon, 14 Mar 2011 14:32:54 -0500
From: Ted Zlatanov <tzz@lifelogs.com>
Subject: Re: Ok, simpler.....
Message-Id: <87wrk18pll.fsf@lifelogs.com>

On Mon, 14 Mar 2011 08:51:08 -0700 (PDT) ccc31807 <cartercc@gmail.com> wrote: 

c> On Mar 13, 9:47 am, mer...@stonehenge.com (Randal L. Schwartz)
ccc31807> "Build a man a fire and you warm him for an hour. Set him on
ccc31807> fire and you warm him for a lifetime."
>> 
>>     "Give a man a fire, and he's warm for an hour.
>>     Set a man on fire, and he's warm for the rest of his life!"

c> I've never heard your version. Some points: (1) You 'build' a fire,
c> not 'give' a fire. How do you give a man a fire? When you give a man a
c> fish, he consumes it. When you build a fire, the man consumes the heat
c> from the fire, not the fire itself. (2) The humor partly comes from
c> the action of the actor, not the action of the receiver of the
c> action ... the confusion of charity and murder. (3) The conflation of
c> 'lifetime' with 'the rest of his life' is intention and subtle. You
c> would expect a listener to understand that in this case, 'lifetime'
c> would imply a shorter span of time rather than a longer span of time
c> than we normally expect in the customary usage of the word
c> 'lifetime.' (4) The parallel with the fish version is explicit -- your
c> version loses the parallelism.

These are very convincing arguments.  Please send them to Mr. Terry
Pratchett so he can revise _Discworld_ in the next edition:

http://www.quotationspage.com/quote/23897.html

Ted


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

Date: Mon, 14 Mar 2011 22:00:18 +0100
From: "Peter J. Holzer" <hjp-usenet2@hjp.at>
Subject: Re: Ok, simpler.....
Message-Id: <slrnint0f2.pdr.hjp-usenet2@hrunkner.hjp.at>

On 2011-03-14 19:32, Ted Zlatanov <tzz@lifelogs.com> wrote:
> On Mon, 14 Mar 2011 08:51:08 -0700 (PDT) ccc31807 <cartercc@gmail.com> wrote: 
> c> On Mar 13, 9:47 am, mer...@stonehenge.com (Randal L. Schwartz)
>>>     "Give a man a fire, and he's warm for an hour.
>>>     Set a man on fire, and he's warm for the rest of his life!"
>
> c> I've never heard your version. Some points: (1) You 'build' a fire,
> c> not 'give' a fire. How do you give a man a fire? When you give a man a
[...]
> c> 'lifetime.' (4) The parallel with the fish version is explicit -- your
> c> version loses the parallelism.
>
> These are very convincing arguments.  Please send them to Mr. Terry
> Pratchett so he can revise _Discworld_ in the next edition:
>
> http://www.quotationspage.com/quote/23897.html

That seems to be a rather vague quotation. Discworld is a series
comprising of 39 novels and 6 short stories. AFAIK there is no novel or
story of this title.

	hp



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

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


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