[29407] in Perl-Users-Digest
Perl-Users Digest, Issue: 651 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Jul 13 21:10:13 2007
Date: Fri, 13 Jul 2007 18:09:06 -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 Fri, 13 Jul 2007 Volume: 11 Number: 651
Today's topics:
Re: "Pop" an alert of some sort in Windows <remay.uk@googlemail.com>
Re: [OT] stopping spam with JavaScript <rvtol+news@isolution.nl>
Re: [PerlMonks] About List::Util's pure Perl shuffle() <bik.mido@tiscalinet.it>
Re: Difficulty manipulating hashes <steamaccount2@gmail.com>
Re: Difficulty manipulating hashes <jgibson@mail.arc.nasa.gov>
Re: Difficulty manipulating hashes <rvtol+news@isolution.nl>
File::Find hendedav@gmail.com
Re: File::Find hendedav@gmail.com
Re: File::Find <jgibson@mail.arc.nasa.gov>
Re: re-lurking <rvtol+news@isolution.nl>
Re: re-lurking <invalid@invalid.net>
Re: re-lurking <invalid@invalid.net>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Sat, 14 Jul 2007 00:22:21 -0000
From: RobMay <remay.uk@googlemail.com>
Subject: Re: "Pop" an alert of some sort in Windows
Message-Id: <1184372541.171649.267080@k79g2000hse.googlegroups.com>
On Jul 13, 9:58 am, Michele Dondi <bik.m...@tiscalinet.it> wrote:
> On Thu, 12 Jul 2007 17:28:05 -0700, RobMay <remay...@googlemail.com>
> wrote:
>
> >What version of Win32::GUI, and what version of perl? I fixed the
>
> C:\temp>perl -v
>
> This is perl, v5.8.8 built for MSWin32-x86-multi-thread
> (with 50 registered patches, see perl -V for more detail)
>
> Copyright 1987-2006, Larry Wall
>
> Binary build 820 [274739] provided by ActiveStatehttp://www.ActiveState.com
> Built Jan 23 2007 15:57:46
>
> C:\temp>perl -MWin32::GUI=99 -e1
> Win32::GUI version 99 required--this is only version 1.03 at
> C:/Programmi/Perl/l
> ib/Exporter/Heavy.pm line 121.
> BEGIN failed--compilation aborted.
OK. Most of the POD was missing from the 1.03 PPM release (and 1.04 I
think) - there was a set of correct HTML pages in this release, but if
you have a latest ActiveState Perl with PPM V4 (which you do), then it
ignores the distributed HTML and tries to re-build it from the POD
(earlier version of PPM did not do this). So in your case there's
(almost) no POD in the distribution, and PPM throws away the
distributed HTML.
I'd thoroughly recommend upgrading to 1.05, as there are a lot of bug
fixes and improvements since 1.03 - I see that you are looking at this
elsewhere in the thread.
Regards,
Rob.
------------------------------
Date: Sat, 14 Jul 2007 00:51:59 +0200
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: [OT] stopping spam with JavaScript
Message-Id: <f796u4.1cs.1@news.isolution.nl>
Michele Dondi schreef:
> Dr.Ruud:
>> [atribution repaired] Michele:
>>> Who's afraid of big bad JS anymore, nowadays?!?
>>
>> New security breaches that are only possible by using your JavaScript
>> enabled browser, pop-up every other week. JavaScript is involved in
>> many recent attacks, and will be for years (AJAX, AIR).
>
> Well, you're right after all... but that won't stop me from using
> it...
With NoScript on, your vulnerability is much less. Adblock is a good one
too.
> BTW: I also recently saw the following in PerlMonks:
> http://perlmonks.org/?node_id=606832
Yes, CSRF, every surfer should be very aware of that.
http://en.wikipedia.org/wiki/Cross-site_request_forgery
http://www.darkreading.com/document.asp?doc_id=107651
As I mentioned before, there is no excuse for running a webserver on
anything involved with security and configuration, like your ADSL- or
Cable-modem or router or firewall, etc.
Switch those embedded webservers off before connecting to other
websites, it is just too easy to reconfigure those boxes via-via.
--
Affijn, Ruud
"Gewoon is een tijger."
------------------------------
Date: Fri, 13 Jul 2007 21:12:55 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: [PerlMonks] About List::Util's pure Perl shuffle()
Message-Id: <f5if93pfhi691q8qij5jiad71n6k9l9bh6@4ax.com>
On Fri, 13 Jul 2007 15:43:03 GMT, Uri Guttman <uri@stemsystems.com>
wrote:
>i don't have the time to play with all of these and benchmark them so i
>leave them to the reader. :)
I see you all are too lazy to read the whole thread @ PM. To put it
briefly probably the fastest subroutine that does a shuffle on an
input list and returns a list (there are faster alternatives accepting
an arrayref as input - still not shuffling in place) is
sub blokhead (@) {
my @a = (0 .. $#_);
my $i = @_;
my $n;
map+( $n=rand($i--), $_[$a[$n]], $a[$n]=$a[$i] )[ 1 ], @_;
}
The full code for the benchmarks run by BrowserUk is:
#!/usr/bin/perl -slw
use strict;
use List::Util qw[ shuffle ];
use Benchmark qw/:all/;
sub naive (@) {
my @l=@_;
for (reverse 1..$#l) {
my $r=int rand($_+1);
@l[$_,$r]=@l[$r,$_];
}
@l;
}
sub listutil (@) {
my @a=\(@_);
my $n;
my $i=@_;
map {
$n = rand($i--);
(${$a[$n]}, $a[$n] = $a[$i])[0];
} @_;
}
sub buk (@) {
my @a = \( @_ );
my $n;
my $i = @_;
map+( $n = rand($i--), ${ $a[ $n ] }, $a[ $n ] = $a[ $i ] )[ 1
],
+@_;
}
sub bukNew ($) {
my( $ref ) = @_;
my @x = 0 .. $#$ref;
@{ $ref }[ map splice( @x, rand @x, 1 ), @x ];
}
#my %stats;
#++$stats{ join' ', bukNew( ['A'..'D'] ) } for 1 .. 1e4;
#print "$_ => $stats{ $_ }" for sort keys %stats;
sub blokhead (@) {
my @a = (0 .. $#_);
my $i = @_;
my $n;
map+( $n=rand($i--), $_[$a[$n]], $a[$n]=$a[$i] )[ 1 ], @_;
}
sub blokhead_ref ($) {
my( $ref ) = @_;
my @a = (0 .. $#$ref);
my $i = @$ref;
my $n;
map+( $n=rand($i--), $ref->[$a[$n]], $a[$n]=$a[$i] )[ 1 ], @a;
}
#%stats = ();
#++$stats{ join' ', blokhead_ref( ['A'..'D'] ) } for 1 .. 1e4;
#print "$_ => $stats{ $_ }" for sort keys %stats;
for my $c ( map{ 10**$_ } 1..3 ) {
for my $l ( map{ 10**$_ } 0.1, 1, 3 ) {
print "\n$c strings length $l";
our @test = map $_ x $l, 1..$c;
cmpthese -3, {
bukNew => q[ bukNew( \@test ) ],
blokhead => q[ blokhead_ref( \@test ) ],
map {
$_ => "$_ \@test"
} qw/naive listutil blokhead buk/
};
}
}
Michele
--
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
.'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
------------------------------
Date: Fri, 13 Jul 2007 12:17:49 -0700
From: limitz <steamaccount2@gmail.com>
Subject: Re: Difficulty manipulating hashes
Message-Id: <1184354269.872810.178830@n2g2000hse.googlegroups.com>
This is my complete code. I'm at the very last step. Basically, I need
to multiply the variable $relafreq as found near the end of the code
to the hash %dinucleotidescorepair and then sum the multiplied values
of the hash all together to return the score.
For example. If $relafreq = .5, .4, .09, .01 and the values of
%dinucleotidescorepair is 5 8 3 6. I need to .5*5 + .4*8 + 3*.09 + .
01*6 then print the value out.
How would I go about doing this?
Thanks guy!
~Frank
#!/usr/bin/perl -w
#The filename of the file containing the e-coli sequence data
$fastadata = 'verified.fa';
#This step is to open the file, if the file cannot be opened, an error
message is printed and the program exits
unless ( open(FASTAFILE,$fastadata) ) {
print "Could not open file $fastadata!\n";
exit;
}
#Read the protein sequence into an array. This array will be used to
generate the Markov Transitional Matrices
@fasta = <FASTAFILE>;
#Close the FASTA data now as all the data has been read into the array
close FASTAFILE;
#Extracting the FASTA file from the array and putting it into a
sequence data
sub extract_sequence_from_fasta_data {
my(@fasta) =@_;
use strict;
use warnings;
#declaing the variables
my $fastasequence = '';
foreach my $line (@fasta) {
#Discard blank line
if ($line =~ /^\s*$/) {
next;
#Discard comment line
} elsif($line =~ /^\s*#/) {
next;
#Discard fasta header line
} elsif($line =~ /^>/) {
next;
#Keep line, add to sequence string
} else {
$fastasequence .= $line;
}
}
#remove non-sequence data from the $sequence string
$fastasequence =~ s/\s//g;
return $fastasequence;
}
$fastasequence = extract_sequence_from_fasta_data (@fasta);
#Split up the FASTA sequence into individual elements
@fastasequence = split( '' , $fastasequence);
#extract data and remove fasta headers from the file to be scored
against the original fasta file
print "What is the filename?\n";
$scoredata = <STDIN>;
unless ( open(SCOREFILE,$scoredata) ) {
print "could not open file $scoredata!\n";
exit;
}
@score = <SCOREFILE>;
close SCOREFILE;
#The sequence to be scored is now in identical format as our original
fasta sequence
$scoresequence = extract_sequence_from_fasta_data (@score);
print "\nThere are a total of 18990 bases in the entire sequence\n";
print "\nWhat is the starting base number? Keep in mind that Perl
begins the tally";
print "\nwith 0. So if you wanted to start from base 30, input in
29\n";
#Here we can define where we want the sequence to begin and end
print "Input Starting Number:\n";
$beginning_of_sequence = <STDIN>;
print "Input Ending Base Number:\n";
$end_of_sequence = <STDIN>;
$length_of_sequence = $end_of_sequence-$beginning_of_sequence+1;
#Counting the occurences for the file to be scored
%dinucleotidescorepair = (
AT => 0,
AC => 0,
AG => 0,
AA => 0,
TA => 0,
TC => 0,
TG => 0,
TT => 0,
CA => 0,
CT => 0,
CG => 0,
CC => 0,
GA => 0,
GT => 0,
GC => 0,
GG => 0,
);
for my $i (0 .. $length_of_sequence-1) {
foreach (keys %dinucleotidescorepair) {
$dinucleotidescorepair{$_}++ if substr($scoresequence, $i, 2) =~ /
$_/;
}
}
print "These are the occurences for the file to be scored\n";
while ( my($keys,$values) = each(%dinucleotidescorepair) ) {
print "$keys $values\n";
}
#Counting and finding the frequencies for the original fasta file
%dinucleotidepair = (
AT => 0,
AC => 0,
AG => 0,
AA => 0,
TA => 0,
TC => 0,
TG => 0,
TT => 0,
CA => 0,
CT => 0,
CG => 0,
CC => 0,
GA => 0,
GT => 0,
GC => 0,
GG => 0,
);
for my $i (0 .. $length_of_sequence-1) {
foreach (keys %dinucleotidepair) {
$dinucleotidepair{$_}++ if substr($fastasequence, $i, 2) =~ /$_/;
}
}
print "\n";
print "These are the occurences for the original file (verified.fa)
\n";
while ( my($keys,$values) = each(%dinucleotidepair) ) {
print "$keys $values\n";
}
print "\n";
print "These are the relative frequencies for the original file\n";
while ( my($keys,$values) = each(%dinucleotidepair) ) {
$relafreq = $values/$length_of_sequence;
printf "$keys %f\n", $relafreq;
}
#The calculation of the final score
------------------------------
Date: Fri, 13 Jul 2007 14:30:43 -0700
From: Jim Gibson <jgibson@mail.arc.nasa.gov>
Subject: Re: Difficulty manipulating hashes
Message-Id: <130720071430431894%jgibson@mail.arc.nasa.gov>
In article <1184354269.872810.178830@n2g2000hse.googlegroups.com>,
limitz <steamaccount2@gmail.com> wrote:
> This is my complete code. I'm at the very last step. Basically, I need
> to multiply the variable $relafreq as found near the end of the code
> to the hash %dinucleotidescorepair and then sum the multiplied values
> of the hash all together to return the score.
>
> For example. If $relafreq = .5, .4, .09, .01 and the values of
> %dinucleotidescorepair is 5 8 3 6. I need to .5*5 + .4*8 + 3*.09 + .
> 01*6 then print the value out.
>
> How would I go about doing this?
Using arithmetic:
my $sum = 0;
while ( my($keys,$values) = each(%dinucleotidepair) ) {
$relafreq = $values/$length_of_sequence;
$sum += $relafreq * $values;
}
print "sum = $sum\n";
Note:
1. You should be using 'use strict:' in your program. Have you read the
guidelines for this newsgroup?
2. You should only post the smallest program necessary. Your question
is about multiplying the values in a hash and summing the results. We
don't need to see the remaining 100-200 lines of your program to show
you how to do that.
>
> Thanks guy!
>
> ~Frank
>
>
> #!/usr/bin/perl -w
'use warnings;' has superceded the '-w' option.
[>100 lines of code snipped]
Posted Via Usenet.com Premium Usenet Newsgroup Services
----------------------------------------------------------
** SPEED ** RETENTION ** COMPLETION ** ANONYMITY **
----------------------------------------------------------
http://www.usenet.com
------------------------------
Date: Sat, 14 Jul 2007 00:49:15 +0200
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: Difficulty manipulating hashes
Message-Id: <f796kk.1bc.1@news.isolution.nl>
merl the perl schreef:
> "Dr.Ruud":
>> __DATA__
>> ACGTGCATGCACGTAATGATCCATG
>> ACGTGCATGCACGTAATGATCCATG
>
> Why do you want the same gene over and over again?
Just to get a quick first run of test data, of course. Is that really
hard for you to understand?
Just replace it by your favourite sequence.
My answer-in-code was not so much about the data, but about the messy
code that limitz published.
--
Affijn, Ruud
"Gewoon is een tijger."
------------------------------
Date: Fri, 13 Jul 2007 11:52:10 -0700
From: hendedav@gmail.com
Subject: File::Find
Message-Id: <1184352730.110215.130340@m3g2000hsh.googlegroups.com>
Gang,
I am having problems passing an array of directories to find. If
I generate the array manually the code works flawlessly. If I let the
application create the array, it bombs with errors "can't stat ...:
invalid argument" even though both show the same results. Here is the
snipet of code:
both $params{'include'} and $params{'exclude'} have values like: "/
somedir/child|/anotherdir/etc|/dir/sub" with the "|" character
seperating the directories.
if (defined $params{'include'}) { (@include) = split(/\|/,
$params{'include'}); } else { return 1; } # seperate all the
"include" directories and files into an array
if (defined $params{'exclude'}) { @exclude = split(/\|/,
$params{'exclude'}); } # same for the "excluded" ones
for (my $i=0; $i<$#include+1; $i++) { # remove the preceeding /
from the entries in the include array
$include[$i] =~ s/\///;
print "$i is '$include[$i]'\n";
}
# if the below are uncommented and run, the application works
#$include[0] = "Webpage\ Projects/foo.ver4";
#$include[1] = "Webpage\ Projects/foobar";
find (sub {
if (-d "$_") { return 1; } # if the value IS a directory, then
skip to the next one
if (int(-M $_) >= $totaldays) { print " removing $_\n"; }
}, @include); # traverses the directory structure to find
files to be removed (might need to use "unlink $File::Find::name;")
}
Any help would greatly be appreciated.
Thanks,
Dave
------------------------------
Date: Fri, 13 Jul 2007 12:19:19 -0700
From: hendedav@gmail.com
Subject: Re: File::Find
Message-Id: <1184354359.489252.42360@d55g2000hsg.googlegroups.com>
On Jul 13, 2:52 pm, hende...@gmail.com wrote:
> Gang,
>
> I am having problems passing an array of directories to find. If
> I generate the array manually the code works flawlessly. If I let the
> application create the array, it bombs with errors "can't stat ...:
> invalid argument" even though both show the same results. Here is the
> snipet of code:
>
> both $params{'include'} and $params{'exclude'} have values like: "/
> somedir/child|/anotherdir/etc|/dir/sub" with the "|" character
> seperating the directories.
>
> if (defined $params{'include'}) { (@include) = split(/\|/,
> $params{'include'}); } else { return 1; } # seperate all the
> "include" directories and files into an array
> if (defined $params{'exclude'}) { @exclude = split(/\|/,
> $params{'exclude'}); } # same for the "excluded" ones
> for (my $i=0; $i<$#include+1; $i++) { # remove the preceeding /
> from the entries in the include array
> $include[$i] =~ s/\///;
> print "$i is '$include[$i]'\n";
> }
>
> # if the below are uncommented and run, the application works
> #$include[0] = "Webpage\ Projects/foo.ver4";
> #$include[1] = "Webpage\ Projects/foobar";
>
> find (sub {
> if (-d "$_") { return 1; } # if the value IS a directory, then
> skip to the next one
>
> if (int(-M $_) >= $totaldays) { print " removing $_\n"; }
> }, @include); # traverses the directory structure to find
> files to be removed (might need to use "unlink $File::Find::name;")
>
> }
>
> Any help would greatly be appreciated.
>
> Thanks,
> Dave
After continuing to play with the code, I figured out that the values
passed to find can NOT contained escaped characters. For example the
parent directory that was being passed contained two words seperated
by a space (Webpage Projects), but the automatically build array was
storing as "Webpage\ Projects". As soon as I removed the \ character,
it worked just fine. I am posting this as a followup for anyone that
may have this same problem in the future.
Dave
------------------------------
Date: Fri, 13 Jul 2007 14:20:23 -0700
From: Jim Gibson <jgibson@mail.arc.nasa.gov>
Subject: Re: File::Find
Message-Id: <130720071420234724%jgibson@mail.arc.nasa.gov>
In article <1184354359.489252.42360@d55g2000hsg.googlegroups.com>,
<hendedav@gmail.com> wrote:
> On Jul 13, 2:52 pm, hende...@gmail.com wrote:
> > Gang,
> >
> > I am having problems passing an array of directories to find. If
> > I generate the array manually the code works flawlessly. If I let the
> > application create the array, it bombs with errors "can't stat ...:
> > invalid argument" even though both show the same results. Here is the
> > snipet of code:
> >
> > both $params{'include'} and $params{'exclude'} have values like: "/
> > somedir/child|/anotherdir/etc|/dir/sub" with the "|" character
> > seperating the directories.
> >
> > if (defined $params{'include'}) { (@include) = split(/\|/,
> > $params{'include'}); } else { return 1; } # seperate
> > all the
> > "include" directories and files into an array
I suggest that in the future if you are looking for help you improve
your indenting. This program is very hard to read. Please also
eliminate the comments (anybody able to help you can see what the code
does). ("separate", please).
> > if (defined $params{'exclude'}) { @exclude = split(/\|/,
> > $params{'exclude'}); } # same for the "excluded" ones
> > for (my $i=0; $i<$#include+1; $i++) { # remove the
> > preceeding /
> > from the entries in the include array
> > $include[$i] =~ s/\///;
> > print "$i is '$include[$i]'\n";
> > }
You can shorten the above 6 lines to:
m{/}{} for @include;
but if you really only want to remove a '/' from the first position in
the string and not the first one in the string, as your comment
declares, you need to anchor your search:
m{^/}{} for @include;
> >
> > # if the below are uncommented and run, the application works
> > #$include[0] = "Webpage\ Projects/foo.ver4";
> > #$include[1] = "Webpage\ Projects/foobar";
You should print out the results of these two lines. You will find that
the backslash is unnecessary.
$include[0] = "Webpage Projects/foo.ver4";
The backslash is interpreted by the Perl compiler and does not end up
in your string.
> >
> > find (sub {
> > if (-d "$_") { return 1; }
Unnecessary characters, quoting, and use of default variables (hat
trick!):
return if -d;
> > # if the value IS a directory, then
> > skip to the next one
> >
> > if (int(-M $_) >= $totaldays) { print " removing $_\n"; }
> > }, @include); #
> > }traverses the directory structure to find
> > files to be removed (might need to use "unlink $File::Find::name;")
> >
> > }
> >
> After continuing to play with the code, I figured out that the values
> passed to find can NOT contained escaped characters. For example the
> parent directory that was being passed contained two words seperated
> by a space (Webpage Projects), but the automatically build array was
> storing as "Webpage\ Projects". As soon as I removed the \ character,
> it worked just fine. I am posting this as a followup for anyone that
> may have this same problem in the future.
The find subroutine will accept whatever you pass it. The backslash is
not interpreted but used as is. The strings passed into your program
are treated as data, not source code. Hence the error.
Hope this has been helpful.
--
Jim Gibson
Posted Via Usenet.com Premium Usenet Newsgroup Services
----------------------------------------------------------
** SPEED ** RETENTION ** COMPLETION ** ANONYMITY **
----------------------------------------------------------
http://www.usenet.com
------------------------------
Date: Sat, 14 Jul 2007 00:22:03 +0200
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: re-lurking
Message-Id: <f7955k.uo.1@news.isolution.nl>
Michele Dondi schreef:
> Only I'm curious as to know whether the date, if present,
> is always the third field...
See my code: you can (and should) ask the server.
> I also have another question for you: I
> wouldnt' use a MESSAGE-SPEC comprising *all* the available articles
> anyway, but from the communication with the server POV, is it better
> to call the xover method for each of them or for a bunch at a time,
> say 10 or 100?
My code happily and speedily xovered millions of articles, in adjustable
chunks.
(But refactor it before using it, I wrote it when I didn't know much
Perl yet.)
I once used it to investigate threading, was fun.
--
Affijn, Ruud
"Gewoon is een tijger."
------------------------------
Date: Fri, 13 Jul 2007 20:08:18 -0400
From: "merl the perl" <invalid@invalid.net>
Subject: Re: re-lurking
Message-Id: <CLudnQxaY45kjgXbnZ2dnUVZ_hSdnZ2d@comcast.com>
"Michele Dondi" <bik.mido@tiscalinet.it> wrote in message
news:4qee939iia1lilvnfdt0nanhlg6qllojg0@4ax.com...
> On Thu, 12 Jul 2007 18:03:27 -0400, "merl the perl"
> <invalid@invalid.net> wrote:
>>> The curly braces may have been fine: many of Benchmark.pm's functions
>>> work like that.
>>Where do I find out things about Benchmark.pm ?
>
> perldoc Benchmark
>
> BTW: later I'll post an article touching on that, stay tuned - and
> look for a [PerlMonks] "tag", if interested.
Before my eyes give out, I'll look at Benchmarks presently. Is it
generally the case that if I'm told to read anyolddoc.pm, then I'll find it
with the perldoc anyolddoc command? I still suspect that handing me code
with {Debug =>1} in the constructor may have been a little Schadenfreude on
the forum's part.
--
merl
------------------------------
Date: Fri, 13 Jul 2007 20:28:00 -0400
From: "merl the perl" <invalid@invalid.net>
Subject: Re: re-lurking
Message-Id: <P6OdnWcLUcsKhQXbnZ2dnUVZ_remnZ2d@comcast.com>
"Tad McClellan" <tadmc@seesig.invalid> wrote in message
news:slrnf9dpee.snr.tadmc@tadmc30.sbcglobal.net...
> merl the perl <invalid@invalid.net> wrote:
>> "Michele Dondi" <bik.mido@tiscalinet.it> wrote in message
>> news:sljc93do6iv92hais7q42dovp2qbd1lb8q@4ax.com...
> You can tell if it is a syntax error because the program will
> fail to compile or run.
>
> If it runs, then it does not contain any syntax errors.
I'm still trying to get my head around this. In Benchmark.pm, it says
"Benchmark inherits from no other class, except of course for Exporter."
Should "for" be "from?"
> [2] except perhaps for a cruel use of a trebuchet. [3]
>
> [3] Oh, I was thinking of cows, not pigs.
The catapult from The Holy Grail?
--
merl
------------------------------
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:
#The Perl-Users Digest is a retransmission of the USENET newsgroup
#comp.lang.perl.misc. For subscription or unsubscription requests, send
#the single line:
#
# subscribe perl-users
#or:
# unsubscribe perl-users
#
#to almanac@ruby.oce.orst.edu.
NOTE: due to the current flood of worm email banging on ruby, the smtp
server on ruby has been shut off until further notice.
To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.
#To request back copies (available for a week or so), send your request
#to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
#where x is the volume number and y is the issue number.
#For other requests pertaining to the digest, send mail to
#perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
#sending perl questions to the -request address, I don't have time to
#answer them even if I did know the answer.
------------------------------
End of Perl-Users Digest V11 Issue 651
**************************************