[28837] in Perl-Users-Digest
Perl-Users Digest, Issue: 81 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Sat Jan 27 09:06:36 2007
Date: Sat, 27 Jan 2007 06:05:04 -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 Sat, 27 Jan 2007 Volume: 11 Number: 81
Today's topics:
adding floating point <perl4hire@softouch.on.ca>
Re: adding floating point <perl4hire@softouch.on.ca>
Re: adding floating point <see.sig@rochester.rr.com>
Re: adding floating point <jurgenex@hotmail.com>
Re: adding floating point <perl4hire@softouch.on.ca>
Re: adding floating point <abigail@abigail.be>
Re: custom regexp modifiers <uri@stemsystems.com>
Re: custom regexp modifiers <nobull67@gmail.com>
Re: custom regexp modifiers <paul@probulletin.com>
Re: How can I convert a scalar to a range list ??? <rvtol+news@isolution.nl>
Re: How can I convert a scalar to a range list ??? <rvtol+news@isolution.nl>
new CPAN modules on Sat Jan 27 2007 (Randal Schwartz)
Re: problems regexp <john.swilting@wanadoo.fr>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Fri, 26 Jan 2007 21:25:47 -0500
From: Amer Neely <perl4hire@softouch.on.ca>
Subject: adding floating point
Message-Id: <wJyuh.3189$WL2.65@read1.cgocable.net>
I've read the FAQ 'Why am I getting long decimals (eg, 19.9499999999999)
instead of the numbers I should be getting (eg, 19.95)?' and other
references, but am still confused by the results I'm getting.
#! /usr/bin/perl
BEGIN
{
open (STDERR,">>$0-err.txt");
print STDERR "\n",scalar localtime,"\n$0\n";
}
use strict;
use warnings;
unless ($#ARGV == 1)
{
print "Usage: calc subtotal shipping\n";
exit;
}
my $subtotal=$ARGV[0];
my $shipping=$ARGV[1];
#my $fuelfee = .1;
my $fuelfee = 10;
printf "%8.2f\n",$subtotal;
printf "%8.2f\n",$shipping;
printf "%8.2f\n",($shipping / $fuelfee); # when $fuelfee = 10
printf "%8.2f\n",($shipping / $fuelfee) + $shipping + $subtotal; # when
$fuelfee = 10
#printf "%8.2f\n",($shipping * $fuelfee); # when $fuelfee = .1;
#printf "%8.2f\n",(shipping * $fuelfee) + $shipping + $subtotal; # when
$fuelfee = .1
__END__
Subtotal: $ 185.63
Shipping: $ 24.15
Fuel Fee: $ 2.42
Total: $ 212.19
If you add the numbers above in your head or a calculator, you get 212.2.
So I'm confused why perl is out by a penny.
Is it related to the FAQ?
$fuelfee is being rounded up by perl from 2.415 to 2.42. But it appears
to be using 2.415 in the addition, to get 212.195 but then not rounding
that to 212.2.
--
Amer Neely
w: www.softouch.on.ca/
b: www.softouch.on.ca/blog/
Perl | MySQL programming for all data entry forms.
"We make web sites work!"
------------------------------
Date: Fri, 26 Jan 2007 21:37:35 -0500
From: Amer Neely <perl4hire@softouch.on.ca>
Subject: Re: adding floating point
Message-Id: <zUyuh.18156$Ah.1725@read2.cgocable.net>
Amer Neely wrote:
> I've read the FAQ 'Why am I getting long decimals (eg, 19.9499999999999)
> instead of the numbers I should be getting (eg, 19.95)?' and other
> references, but am still confused by the results I'm getting.
>
> #! /usr/bin/perl
>
> BEGIN
> {
> open (STDERR,">>$0-err.txt");
> print STDERR "\n",scalar localtime,"\n$0\n";
> }
>
> use strict;
> use warnings;
>
> unless ($#ARGV == 1)
> {
> print "Usage: calc subtotal shipping\n";
> exit;
> }
>
> my $subtotal=$ARGV[0];
> my $shipping=$ARGV[1];
> #my $fuelfee = .1;
> my $fuelfee = 10;
>
> printf "%8.2f\n",$subtotal;
> printf "%8.2f\n",$shipping;
> printf "%8.2f\n",($shipping / $fuelfee); # when $fuelfee = 10
> printf "%8.2f\n",($shipping / $fuelfee) + $shipping + $subtotal; # when
> $fuelfee = 10
> #printf "%8.2f\n",($shipping * $fuelfee); # when $fuelfee = .1;
> #printf "%8.2f\n",(shipping * $fuelfee) + $shipping + $subtotal; # when
There is a typo in my pasted code above. 'shipping' should obviously be
'$shipping'.
--
Amer Neely
w: www.softouch.on.ca/
b: www.softouch.on.ca/blog/
Perl | MySQL programming for all data entry forms.
"We make web sites work!"
------------------------------
Date: Fri, 26 Jan 2007 22:31:29 -0500
From: Bob Walton <see.sig@rochester.rr.com>
Subject: Re: adding floating point
Message-Id: <45bac791$0$17381$4c368faf@roadrunner.com>
Amer Neely wrote:
> Amer Neely wrote:
>> I've read the FAQ 'Why am I getting long decimals (eg,
>> 19.9499999999999) instead of the numbers I should be getting (eg,
>> 19.95)?' and other references, but am still confused by the results
>> I'm getting.
>>
>> #! /usr/bin/perl
>>
>> BEGIN
>> {
>> open (STDERR,">>$0-err.txt");
>> print STDERR "\n",scalar localtime,"\n$0\n";
>> }
>>
>> use strict;
>> use warnings;
>>
>> unless ($#ARGV == 1)
>> {
>> print "Usage: calc subtotal shipping\n";
>> exit;
>> }
>>
>> my $subtotal=$ARGV[0];
>> my $shipping=$ARGV[1];
>> #my $fuelfee = .1;
>> my $fuelfee = 10;
>>
>> printf "%8.2f\n",$subtotal;
>> printf "%8.2f\n",$shipping;
>> printf "%8.2f\n",($shipping / $fuelfee); # when $fuelfee = 10
>> printf "%8.2f\n",($shipping / $fuelfee) + $shipping + $subtotal; #
>> when $fuelfee = 10
>> #printf "%8.2f\n",($shipping * $fuelfee); # when $fuelfee = .1;
>> #printf "%8.2f\n",(shipping * $fuelfee) + $shipping + $subtotal; # when
>
> There is a typo in my pasted code above. 'shipping' should obviously be
> '$shipping'.
>
That's why you should always copy/paste your real working tested code
into newsgroup notes, as suggested by the posting guidelines, rather
than retyping it.
I'm not sure how much more clear a statement could be made than the FAQ
on floating point rounding. Note that this is not an issue with Perl or
any other computing language, but an issue with the computer hardware
which performs floating point arithmetic: IT IS APPROXIMATE. IT IS NOT
EXACT. ROUNDING MAY NOT HAPPEN THE WAY YOU EXPECT OR WISH. RESULTS MAY
DIFFER ON DIFFERENT HARDWARE PLATFORMS AND FLOATING POINT INSTRUCTION SETS.
Numbers such as the decimal number 0.1 are not represented exactly.
Print it out with:
D:\JUNK>perl -e "print '%50.30f',0.1";
0.100000000000000010000000000000
if you don't believe me.
If you perform "exact" decimal arithmetic on your formula above with
your example numbers, you get 212.195 -- and which way to round it to
two places is up to the user (yeah, some folks may have preferences, but
then someone else will prefer the other way). With floating point
arithmetic rather than exact decimal arithmetic, you may get something
like 212.194999999999 (which will round to 212.19) or 212.195000000001
(which will round to 212.20) -- with which one depending on your
hardware platform -- my PC generates 212.194999999999999000000... if I
print it with %50.30f for a format string, and 212.19 with %.2f as a
format string. If you want exact arithmetic, then you have to use the
facilities of your computer which accomplish exact arithmetic:
integers. In Perl, that is:
use integer;
Note that it is tricky business to correctly perform exact arithmetic,
particularly on financial computations where someone is auditing every
penny. Best to leave such to the pros.
HTH
--
Bob Walton
Email: http://bwalton.com/cgi-bin/emailbob.pl
------------------------------
Date: Sat, 27 Jan 2007 04:08:23 GMT
From: "Jürgen Exner" <jurgenex@hotmail.com>
Subject: Re: adding floating point
Message-Id: <XeAuh.62$Xf4.36@trndny09>
Amer Neely wrote:
> I've read the FAQ 'Why am I getting long decimals (eg,
> 19.9499999999999) instead of the numbers I should be getting (eg,
> 19.95)?' and other references, but am still confused by the results
[...]
> Total: $ 212.19
>
> If you add the numbers above in your head or a calculator, you get
> 212.2.
> So I'm confused why perl is out by a penny.
>
> Is it related to the FAQ?
Yes. You must have missed "Introduction to Computer Numerics".
This has nothing to do with Perl but everything with how decimal numbers are
represented internally in a computer. You would get the same result in any
other programming language unless it is a language that is specifically
designed to handle numerical problems.
jue
------------------------------
Date: Fri, 26 Jan 2007 23:45:50 -0500
From: Amer Neely <perl4hire@softouch.on.ca>
Subject: Re: adding floating point
Message-Id: <OMAuh.18165$Ah.16153@read2.cgocable.net>
Bob Walton wrote:
> Amer Neely wrote:
>> Amer Neely wrote:
>>> I've read the FAQ 'Why am I getting long decimals (eg,
>>> 19.9499999999999) instead of the numbers I should be getting (eg,
>>> 19.95)?' and other references, but am still confused by the results
>>> I'm getting.
>>>
>>> #! /usr/bin/perl
>>>
>>> BEGIN
>>> {
>>> open (STDERR,">>$0-err.txt");
>>> print STDERR "\n",scalar localtime,"\n$0\n";
>>> }
>>>
>>> use strict;
>>> use warnings;
>>>
>>> unless ($#ARGV == 1)
>>> {
>>> print "Usage: calc subtotal shipping\n";
>>> exit;
>>> }
>>>
>>> my $subtotal=$ARGV[0];
>>> my $shipping=$ARGV[1];
>>> #my $fuelfee = .1;
>>> my $fuelfee = 10;
>>>
>>> printf "%8.2f\n",$subtotal;
>>> printf "%8.2f\n",$shipping;
>>> printf "%8.2f\n",($shipping / $fuelfee); # when $fuelfee = 10
>>> printf "%8.2f\n",($shipping / $fuelfee) + $shipping + $subtotal; #
>>> when $fuelfee = 10
>>> #printf "%8.2f\n",($shipping * $fuelfee); # when $fuelfee = .1;
>>> #printf "%8.2f\n",(shipping * $fuelfee) + $shipping + $subtotal; # when
>>
>> There is a typo in my pasted code above. 'shipping' should obviously
>> be '$shipping'.
>>
> That's why you should always copy/paste your real working tested code
> into newsgroup notes, as suggested by the posting guidelines, rather
> than retyping it.
You missed the part where I said '...pasted code'. I *did* paste it in,
but the original was wrong as well.
>
> I'm not sure how much more clear a statement could be made than the FAQ
> on floating point rounding. Note that this is not an issue with Perl or
> any other computing language, but an issue with the computer hardware
> which performs floating point arithmetic: IT IS APPROXIMATE. IT IS NOT
> EXACT. ROUNDING MAY NOT HAPPEN THE WAY YOU EXPECT OR WISH. RESULTS MAY
> DIFFER ON DIFFERENT HARDWARE PLATFORMS AND FLOATING POINT INSTRUCTION SETS.
>
> Numbers such as the decimal number 0.1 are not represented exactly.
> Print it out with:
>
> D:\JUNK>perl -e "print '%50.30f',0.1";
> 0.100000000000000010000000000000
>
> if you don't believe me.
>
> If you perform "exact" decimal arithmetic on your formula above with
> your example numbers, you get 212.195 -- and which way to round it to
> two places is up to the user (yeah, some folks may have preferences, but
> then someone else will prefer the other way). With floating point
> arithmetic rather than exact decimal arithmetic, you may get something
> like 212.194999999999 (which will round to 212.19) or 212.195000000001
> (which will round to 212.20) -- with which one depending on your
> hardware platform -- my PC generates 212.194999999999999000000... if I
> print it with %50.30f for a format string, and 212.19 with %.2f as a
> format string. If you want exact arithmetic, then you have to use the
> facilities of your computer which accomplish exact arithmetic:
> integers. In Perl, that is:
>
> use integer;
>
> Note that it is tricky business to correctly perform exact arithmetic,
> particularly on financial computations where someone is auditing every
> penny. Best to leave such to the pros.
>
> HTH
Thanks for the clarification. I'll try running a round routine on it.
--
Amer Neely
w: www.softouch.on.ca/
b: www.softouch.on.ca/blog/
Perl | MySQL programming for all data entry forms.
"We make web sites work!"
------------------------------
Date: 27 Jan 2007 10:12:56 GMT
From: Abigail <abigail@abigail.be>
Subject: Re: adding floating point
Message-Id: <slrnerm9d1.tcf.abigail@alexandra.abigail.be>
Amer Neely (perl4hire@softouch.on.ca) wrote on MMMMDCCCXCVII September
MCMXCIII in <URL:news:wJyuh.3189$WL2.65@read1.cgocable.net>:
## I've read the FAQ 'Why am I getting long decimals (eg, 19.9499999999999)
## instead of the numbers I should be getting (eg, 19.95)?' and other
## references, but am still confused by the results I'm getting.
##
## #! /usr/bin/perl
##
## BEGIN
## {
## open (STDERR,">>$0-err.txt");
## print STDERR "\n",scalar localtime,"\n$0\n";
## }
##
## use strict;
## use warnings;
##
## unless ($#ARGV == 1)
## {
## print "Usage: calc subtotal shipping\n";
## exit;
## }
##
## my $subtotal=$ARGV[0];
## my $shipping=$ARGV[1];
## #my $fuelfee = .1;
## my $fuelfee = 10;
##
## printf "%8.2f\n",$subtotal;
## printf "%8.2f\n",$shipping;
## printf "%8.2f\n",($shipping / $fuelfee); # when $fuelfee = 10
## printf "%8.2f\n",($shipping / $fuelfee) + $shipping + $subtotal; # when
## $fuelfee = 10
## #printf "%8.2f\n",($shipping * $fuelfee); # when $fuelfee = .1;
## #printf "%8.2f\n",(shipping * $fuelfee) + $shipping + $subtotal; # when
## $fuelfee = .1
##
## __END__
## Subtotal: $ 185.63
## Shipping: $ 24.15
## Fuel Fee: $ 2.42
## Total: $ 212.19
##
## If you add the numbers above in your head or a calculator, you get 212.2.
Yes.
## So I'm confused why perl is out by a penny.
##
## Is it related to the FAQ?
Not really.
## $fuelfee is being rounded up by perl from 2.415 to 2.42.
No, it's not. $fuelfee = 10 and doesn't change. But Perl also doesn't
round $shipping / $fuelfee to 2.42. What it does is round what it
*displays*.
## But it appears
## to be using 2.415 in the addition, to get 212.195 but then not rounding
## that to 212.2.
That's the difference between rounding intermediate results and rounding
the final results. If you want to get 212.20 as an answer, you must round
the intermediate values as well:
printf "%8.2f" => sprintf ("%8.2f" => $shipping / $fuelfee)
+ $shipping + $subtotal;
In general, the following is not true:
f(a) op f(b) = f(a op b)
and that's what you were doing, with 'op' addition, and 'f' printf's
rounding functionality.
Abigail
--
perl -wlne '}{print$.' file # Count the number of lines.
------------------------------
Date: Fri, 26 Jan 2007 22:00:05 -0500
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: custom regexp modifiers
Message-Id: <x7sldxxjgq.fsf@mail.sysarch.com>
>>>>> "P" == Paul <paul@probulletin.com> writes:
P> Actually the following may be better:
P> $path =~ s|\\(?:\\)?|/|sg;
???
why the grouping? \\? is 0 or 1 \
why not just \\{1,2} ?
why even care about multiple \ at all?
if so, then tr/// is better:
tr{\\}{/}
uri
--
Uri Guttman ------ uri@stemsystems.com -------- http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org
------------------------------
Date: 27 Jan 2007 01:52:34 -0800
From: "Brian McCauley" <nobull67@gmail.com>
Subject: Re: custom regexp modifiers
Message-Id: <1169891554.618304.167970@s48g2000cws.googlegroups.com>
On 26 Jan, 23:40, "Josef Lechner" <lechn...@colorado.edu> wrote:
> I have to compare pathnames that use different formats; Windows
> (.\foo\bar), UNIX (./foo/bar), and sometimes mixed (.\foo/bar). To my
> script, all of those pathnames in parentheses are equivalent. However,
> perl's regular expressions do not see it that way. The way I've been
> handling this is by first converting to UNIX style then comparing.
>
> This works fine, but it really irks me that this is really no different
> from what the /i modifier does, in that the /i modifier just treats
> upper and lower case letters as if they're the same. I think it is
> reasonable to want to do the same sort of deal with different
> characters (i.e. /'s and \'s). So, is there a way to make my own
> modifiers? perlre mentions (near the end) that qr// can be overloaded
> to make your own escape sequences but I'm not sure if this strategy
> would work for me.
It would work. You could preprocess every / in a re into [\\/]. Unless
it's already in a character class in which case you'd want to
preprocess it to \\/.
The trouble is that parsing a regex is not trivial so this is a lot of
work.
YAPE::Regex will make a parse tree of the regex but I can't immediately
see from the YAPE::Regex documentation how to traverse and mutate this
tree cleanly through the API other than by digging in the internals.
Here's a first cut, but what we really need is better accessors in
YAPE::Regex.
package anyslash;
use strict;
use warnings;
use overload;
use YAPE::Regex;
sub import {
overload::constant 'qr' => \&convert;
}
# Ugly look at the inside of the parse tree!
sub mutate {
my $node = shift;
if ( ref $node->{CONTENT} eq 'ARRAY' ) {
@{$node->{CONTENT}} = map { mutate($_) } @{$node->{CONTENT}};
}
my $type = $node->type;
if ( $type eq 'class') {
$node->{TEXT} =~ s/\//\\\\\//g;
}
if ( $type eq 'text' ) {
my @nodes;
for my $token ( $node->{TEXT} =~ /[^\/]+|\//g ) {
if ( $token eq '/' ) {
push @nodes => YAPE::Regex::class->new("\\\\/");
} else {
push @nodes => YAPE::Regex::text->new($token);
}
}
return @nodes;
}
return $node;
}
sub convert {
my $parser = YAPE::Regex->new(shift);
$parser->parse;
return mutate($parser->root)->fullstring;
}
1;
------------------------------
Date: 27 Jan 2007 01:53:49 -0800
From: "Paul" <paul@probulletin.com>
Subject: Re: custom regexp modifiers
Message-Id: <1169891629.506628.80190@a75g2000cwd.googlegroups.com>
Yep, TIMTOWTDI
>>
why even care about multiple \ at all?
<<
Windows.
------------------------------
Date: Sat, 27 Jan 2007 11:48:58 +0100
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: How can I convert a scalar to a range list ???
Message-Id: <epfe8c.1ck.1@news.isolution.nl>
hekutu@gmail.com schreef:
> The follwing small program runs well.
> ==================
> my @b = (1..10);
> print @b;
> ==================
> The output is:12345678910
>
> But I want to replace the range list with a
> flexible scalar, the new program looks like:
> =========================
> my $a = "(1..10)";
> my @b = $a;
> print @b;
> =========================
> The output is:(1..10)
>
> The scalar is still the scalar. How can I convert
> the text scalar "(1..10)" to a range list?
perl -Mstrict -wle'
my $a = q/(1,10)/;
print $a;
if ( my ($min, $max) = $a =~ /[0-9]+/g ) {
print $min; print $max;
my @b = $min .. $max;
print @b;
}
'
--
Affijn, Ruud
"Gewoon is een tijger."
------------------------------
Date: Sat, 27 Jan 2007 13:27:50 +0100
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: How can I convert a scalar to a range list ???
Message-Id: <epfk5r.13k.1@news.isolution.nl>
Dr.Ruud schreef:
> perl -Mstrict -wle'
>
> my $a = q/(1,10)/;
> print $a;
>
> if ( my ($min, $max) = $a =~ /[0-9]+/g ) {
> print $min; print $max;
>
> my @b = $min .. $max;
> print @b;
> }
> '
Oops, this doesn't work well for something like
my $a = q/(1,abc)/;
Revision:
$ perl -Mstrict -wle '
my $a = q/(1,10)/;
print qq/input>$a</;
if ( 1 < (my ($min, $max) = $a =~ /[0-9]+/g)) {
print $min;
print $max;
my @b = $min .. $max;
print @b;
print qq/@b/;
}
else {
die qq/input invalid\n/;
}
'
--
Affijn, Ruud
"Gewoon is een tijger."
------------------------------
Date: Sat, 27 Jan 2007 05:42:09 GMT
From: merlyn@stonehenge.com (Randal Schwartz)
Subject: new CPAN modules on Sat Jan 27 2007
Message-Id: <JCIII9.E80@zorch.sf-bay.org>
The following modules have recently been added to or updated in the
Comprehensive Perl Archive Network (CPAN). You can install them using the
instructions in the 'perlmodinstall' page included with your Perl
distribution.
Acme-Lou-0.01
http://search.cpan.org/~tomita/Acme-Lou-0.01/
Let's together with Lou Ohshiba
----
Acme-Lou-0.02
http://search.cpan.org/~tomita/Acme-Lou-0.02/
Let's together with Lou Ohshiba
----
Acme-Nooo-0.01
http://search.cpan.org/~seano/Acme-Nooo-0.01/
But I don't care if "It Has Objects"!
----
Archive-Extract-0.16
http://search.cpan.org/~kane/Archive-Extract-0.16/
A generic archive extracting mechanism
----
Astro-SIMBAD-Client-0.002
http://search.cpan.org/~wyant/Astro-SIMBAD-Client-0.002/
Fetch astronomical data from SIMBAD 4.
----
Audio-PortAudio-0.03
http://search.cpan.org/~jdiepen/Audio-PortAudio-0.03/
portable audio I/O
----
BatchSystem-SBS-0.23
http://search.cpan.org/~alexmass/BatchSystem-SBS-0.23/
a Simple Batch System
----
Bio-Das-ProServer-2.5
http://search.cpan.org/~rpettett/Bio-Das-ProServer-2.5/
----
Carp-Diagnostics-0.01
http://search.cpan.org/~nkh/Carp-Diagnostics-0.01/
Carp with a diagnostic message
----
Carp-Diagnostics-0.02
http://search.cpan.org/~nkh/Carp-Diagnostics-0.02/
Carp with a diagnostic message
----
Class-DBI-Pg-More-0.02
http://search.cpan.org/~bosu/Class-DBI-Pg-More-0.02/
Enhances Class::DBI::Pg with more goodies.
----
Crypt-PBC-0.7.20.0-0.4.4
http://search.cpan.org/~jettero/Crypt-PBC-0.7.20.0-0.4.4/
OO interface for the Stanford PBC library
----
File-Fetch-0.10
http://search.cpan.org/~kane/File-Fetch-0.10/
A generic file fetching mechanism
----
GD-Graph-Polar-0.09
http://search.cpan.org/~mrdvt/GD-Graph-Polar-0.09/
Make polar graph using GD package
----
GPS-SpaceTrack-0.09
http://search.cpan.org/~mrdvt/GPS-SpaceTrack-0.09/
Package for calculating the position of GPS satellites
----
Image-Pngslimmer-0.03
http://search.cpan.org/~acmcmen/Image-Pngslimmer-0.03/
slims (dynamically created) PNGs
----
Jifty-DBI-0.31
http://search.cpan.org/~audreyt/Jifty-DBI-0.31/
An object-relational persistence framework
----
Jifty-DBI-0.32
http://search.cpan.org/~audreyt/Jifty-DBI-0.32/
An object-relational persistence framework
----
Jifty-DBI-0.39_99
http://search.cpan.org/~audreyt/Jifty-DBI-0.39_99/
An object-relational persistence framework
----
Jifty-DBI-0.39_999
http://search.cpan.org/~audreyt/Jifty-DBI-0.39_999/
An object-relational persistence framework
----
Lingua-YaTeA-0.1
http://search.cpan.org/~thhamon/Lingua-YaTeA-0.1/
----
Module-Runtime-0.003
http://search.cpan.org/~zefram/Module-Runtime-0.003/
runtime module handling
----
Object-Declare-0.21
http://search.cpan.org/~audreyt/Object-Declare-0.21/
Declarative object constructor
----
POE-Component-Jabber-2.01
http://search.cpan.org/~nperez/POE-Component-Jabber-2.01/
A POE Component for communicating over Jabber
----
Parallel-Forker-1.213
http://search.cpan.org/~wsnyder/Parallel-Forker-1.213/
Parallel job forking and management
----
Sub-ForceEval-2.01
http://search.cpan.org/~lembark/Sub-ForceEval-2.01/
eval subroutines, re-throw exceptions if there is an eval; otherwise cluck and return undef.
----
Sub-ForceEval-2.02
http://search.cpan.org/~lembark/Sub-ForceEval-2.02/
eval subroutines, re-throw exceptions if there is an eval; otherwise cluck and return undef.
----
URI-ParseSearchString-1.7
http://search.cpan.org/~sden/URI-ParseSearchString-1.7/
parse Apache refferer logs and extract search engine query strings.
----
URI-ParseSearchString-1.8
http://search.cpan.org/~sden/URI-ParseSearchString-1.8/
parse Apache refferer logs and extract search engine query strings.
----
XML-Descent-v0.0.2
http://search.cpan.org/~andya/XML-Descent-v0.0.2/
Recursive descent XML parsing
----
XML-Tiny-1.0
http://search.cpan.org/~dcantrell/XML-Tiny-1.0/
simple lightweight parser for a subset of XML
----
txt2html-2.45
http://search.cpan.org/~rubykat/txt2html-2.45/
convert plain text file to HTML.
If you're an author of one of these modules, please submit a detailed
announcement to comp.lang.perl.announce, and we'll pass it along.
This message was generated by a Perl program described in my Linux
Magazine column, which can be found on-line (along with more than
200 other freely available past column articles) at
http://www.stonehenge.com/merlyn/LinuxMag/col82.html
print "Just another Perl hacker," # the original
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!
------------------------------
Date: Sat, 27 Jan 2007 12:26:20 +0100
From: "john.swilting" <john.swilting@wanadoo.fr>
Subject: Re: problems regexp
Message-Id: <45bb36c9$0$5079$ba4acef3@news.orange.fr>
Dr.Ruud wrote:
> john.swilting schreef:
>
>> if($data{attachement} = ~m/$`\.gif/){
>
>
> Or try substr:
>
> if ( substr($data{attachement}, -4) eq q/.gif/ ) {
>
succes
very nice
its ok
i am beginners in perl
I progress
------------------------------
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 81
*************************************