[17972] in Perl-Users-Digest
Perl-Users Digest, Issue: 132 Volume: 10
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Wed Jan 24 09:05:38 2001
Date: Wed, 24 Jan 2001 06:05:14 -0800 (PST)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Message-Id: <980345114-v10-i132@ruby.oce.orst.edu>
Content-Type: text
Perl-Users Digest Wed, 24 Jan 2001 Volume: 10 Number: 132
Today's topics:
Re: $FindBin::Bin for modules (Joe Smith)
Any suggestions on how to improve this script? <psb154@deja-news.com>
Re: Can't locate URI/Escape.pm in @INC <jkuo@bellatlantic.net>
Re: Catching warnings from Getopt::Std (Anno Siegel)
Re: Free SQL server with perl? <gracenews@optusnet.com.au>
GroupWise and Perl <kdp@hom.net>
Re: How to do this regular expression? <Jerome.Abela@free.fr>
Re: How to make Win32 Executables from Perl Scripts? <zarathustra@enviroweb.org>
Re: kill -HUP only works once (Anno Siegel)
Re: Lint for perl? (Joe Smith)
Re: Newbie question : Read configuration file. <angeraer@hotmail.com>
passing parameters to perl cronjob? <cnielsen@sinik.de>
Re: Pattern Matching Problem (Joe Smith)
Perl is bad at (very) simple math! <stopp@eye.ch>
Re: Perl is bad at (very) simple math! (Rafael Garcia-Suarez)
Re: Perl is bad at (very) simple math! <josef.moellers@fujitsu-siemens.com>
Re: Perl is bad at (very) simple math! (Abigail)
Re: Perl is bad at (very) simple math! (Martien Verbruggen)
Perl runtime on CD <qvyht@iobox.fi>
Re: Perl runtime on CD (Abigail)
Re: Please help how to use Open3 (Garry Williams)
Re: Shareware: txt2pdf 4.3 (Tad McClellan)
Re: stability of threads + interpreter performance <not@defined.com>
Re: stability of threads + interpreter performance (Damian James)
Re: Trouble sorting array (Anno Siegel)
Re: Trouble sorting array (Garry Williams)
Re: Type globs <Jerome.Abela@free.fr>
Re: Type globs (Tad McClellan)
Upgrading to Perl 5.6 under Debian 2.2 <pking123@sympatico.ca>
Re: Upgrading to Perl 5.6 under Debian 2.2 (Martien Verbruggen)
Re: Upgrading to Perl 5.6 under Debian 2.2 (Damian James)
Re: Why do 'or' and '||' behave strangely different? (Eric Bohlman)
Re: Why do 'or' and '||' behave strangely different? (Martien Verbruggen)
Re: Why do 'or' and '||' behave strangely different? <whumann@my-deja.com>
Digest Administrivia (Last modified: 16 Sep 99) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 24 Jan 2001 12:18:23 GMT
From: inwap@best.com (Joe Smith)
Subject: Re: $FindBin::Bin for modules
Message-Id: <94mh6f$2bu9$1@nntp1.ba.best.com>
In article <94891j$72o@netnews.hinet.net>,
John Lin <johnlin@chttl.com.tw> wrote:
>Just like the main script position can be derived from
> $0 and __FILE__ , that's what FindBin.pm does,
>my suggestion is to extend FindBin.pm to do the same
>thing for modules. That would be more complete.
If you look at the archives of the perl5-porters mailing list
(http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/)
you may find many messages with "Patches welcome".
It means that if you create a patch yourself for this new functionality,
document it, and test it using the most recent sources (perl-5.7.0),
then it can be included as part of the official perl distribution.
-Joe
--
See http://www.inwap.com/ for PDP-10 and "ReBoot" pages.
------------------------------
Date: Wed, 24 Jan 2001 13:34:14 +0000
From: Paul <psb154@deja-news.com>
Subject: Any suggestions on how to improve this script? (Sent as a private person)
Message-Id: <3A6ED9D6.567F39C8@deja-news.com>
Want to check two text files and determine if a line of text appears in
the second file but not in the first file.
I also want to do the opposite:
Determine if a line of text appear in first file but not in the second
file.
Any suggestions gratefully received :-)
Here's my current script:
=========================
# INITIALISE VARIABLES.
#
$FoundFlag = 1;
# OPEN FIRST FILE.
#
if (open(FILE1, "c:\\temp\\reg-files\\reg-file1.reg"))
{}
else
{
print("Could not open first file\n");
}
# OPEN SECOND FILE.
#
if (open(FILE2, "c:\\temp\\reg-files\\reg-file2.reg"))
{}
else
{
print("Could not open second file\n");
}
# PUT EACH LINE OF FILE 1 INTO A STRING.
#
@file1 = <FILE1>;
# PUT EACH LINE OF FILE 2 INTO A STRING.
#
@file2 = <FILE2>;
# COMPARE FIRST STRING OF FILE 1 WITH EACH STRING OF FILE 2, ETC.
# IF STRING IS NOT FOUND IN SECOND FILE, PRINT IT TO SCREEN.
#
foreach $FirstFileString (@file1)
{
foreach $SecondFileString (@file2)
{
if ($FirstFileString eq $SecondFileString)
{
$FoundFlag = 0;
}
}
if ($FoundFlag == 1)
{
print("mswtest3-content-technologies.reg: $FirstFileString");
}
$FoundFlag = 1;
}
Regards
--Paul Butterfield.
--
This email has been sent: "As a private person."
Care has been taken to avoid sending inappropriate remarks or
attachments via this email.
------------------------------
Date: Wed, 24 Jan 2001 12:43:43 GMT
From: "Justin Kuo" <jkuo@bellatlantic.net>
Subject: Re: Can't locate URI/Escape.pm in @INC
Message-Id: <36Ab6.9765$Jw.2073008@typhoon2.ba-dsg.net>
Jamie O'Shaughnessy" <jamie.oshaughnessy@ntlworld.com> wrote in message
news:c8uf6t02ijtmmnipsbeqors1gi1mchfhao@4ax.com...
>
> Not sure if URI::Escape is part the libwww group of modules, so you
> should have this (maybe not though).
>
> Read up about the CPAN module. This is a module that will help you
> download, build, test and install modules from CPAN. Run it doing
> something like:
>
> perl -MCPAN -e shell
>
> It may then be as simple as "installl URI::Escape".
>
> Jamie
>
> On Fri, 19 Jan 2001 05:25:45 GMT, "Justin Kuo" <jkuo@bellatlantic.net>
> wrote:
>
> >I'm completely new to perl/CGI and need a little help getting my program
to
> >work in my Apache server's cgi-bin.
> >
> >I'm installed the "tree.pl" routine available at:
> >
> > <http://www.ev-stift-gymn.guetersloh.de/server/tree_e.html>
> >
> >When I attempt to run the program as a cgi in a browser, I got an
Internal
> >Server error. The error log gave me this message:
> >
> >Can't locate URI/Escape.pm in @INC (@INC contains:
> >/usr/lib/perl5/5.00503/i386-linux /usr/lib/perl5/5.00503
> >/usr/lib/perl5/site_perl/5.005/i386-linux /usr/lib/perl5/site_perl/5.005
.)
> >at /home/jkuo/www/cgi-bin/tools/tree.pl line 153.
> >BEGIN failed--compilation aborted at /home/jkuo/www/cgi-bin/tools/tree.pl
> >line 153.
> >[Thu Jan 18 21:57:53 2001] [error] [client 192.168.1.4] Premature end of
> >script headers: /home/jkuo/www/cgi-bin/tools/tree.pl
> >
> >What can I do to correct the problem? Is my perl application on my Linux
> >machine missing a module? If so, how do I install the module? I
appreciate
> >any help. Thank you. -- Justin
> >
>
After reading Jamie's message I attempted to learn how to use CPAN to
install/upgrade my Perl software on my Linux machine. I had to install sudo,
and figure out how to configure CPAN to get it working properly. I'm still a
novice and need some help.
There are a lot of messages that zip by me when I run an install. I can
capture them. Some make sense, others are confusing. Should I review all of
them?
As an example, I tried to install the Perl GD.pm Module to be used with the
HAMweather Pro CGI scripts. (http://www.hamweather.com/). I started CPAN and
asked it to install GD. I have included a log below. When the install
finished, it reported these errors:
"Can't test without successful make"
"make had returned bad status, install seems impossible"
Would you let me know what I should look for in order to install
successfully?
Thanks. -- Justin Kuo <kuo@world.std.com>
----- begin log -----
sudo perl -MCPAN -e shell
cpan> install GD
Running install for module GD
Running make for L/LD/LDS/GD-1.32.tar.gz
CPAN: Net::FTP loaded ok
Fetching with Net::FTP:
ftp://carroll.cac.psu.edu/pub/CPAN/authors/id/L/LD/LDS/GD-1.32.tar.gz
Couldn't login on carroll.cac.psu.edu at /usr/lib/perl5/5.00503/CPAN.pm line
207
2.
Fetching with Net::FTP:
ftp://cpan.in-span.net/authors/id/L/LD/LDS/GD-1.32.tar.gz
Fetching with Net::FTP:
ftp://cpan.in-span.net/authors/id/L/LD/LDS/CHECKSUMS
Checksum for
/home/jkuo/.cpan/CPAN/sources/authors/id/L/LD/LDS/GD-1.32.tar.gz ok
GD-1.32/
GD-1.32/t/
[snip]
GD-1.32/Makefile.PL
GD-1.32/README
CPAN.pm: Going to build L/LD/LDS/GD-1.32.tar.gz
NOTICE: This module requires libgd 1.8.3 or higher (shared library version
4.X).
Please choose the features that match how libgd was built:
Build JPEG support? [y]
Build FreeType support? [y]
Build XPM support? [y]
If you experience compile problems, please check the @INC, @LIBPATH and
@LIBS
arrays defined in Makefile.PL and manually adjust, if necessary.
Checking if your kit is complete...
Looks good
Writing Makefile for GD
mkdir blib
mkdir blib/lib
mkdir blib/arch
mkdir blib/arch/auto
mkdir blib/arch/auto/GD
mkdir blib/lib/auto
mkdir blib/lib/auto/GD
mkdir blib/man3
cp patch_gd.pl blib/lib/patch_gd.pl
cp GD.pm blib/lib/GD.pm
AutoSplitting blib/lib/GD.pm (blib/lib/auto/GD)
cp qd.pl blib/lib/qd.pl
/usr/local/bin/perl -I/usr/lib/perl5/5.00503/i386-linux -I/usr/lib/perl5/5.0
0503
/usr/lib/perl5/5.00503/ExtUtils/xsubpp -object_capi -typemap
/usr/lib/perl5/5.
00503/ExtUtils/typemap -typemap typemap GD.xs >xstmp.c && mv xstmp.c GD.c
cc -c -I/usr/local/include -I/usr/local/include/gd -Dbool=char -DHAS_BOOL -I
/usr
/local/include -O2 -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fpic -I/usr/
lib/
perl5/5.00503/i386-linux/CORE -DHAVE_JPEG -DHAVE_TTF -DHAVE_XPM GD.c
In file included from GD.xs:5:
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:307: sys/types.h: No such file
or directory
In file included from /usr/lib/perl5/5.00503/i386-linux/CORE/iperlsys.h:203,
from /usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:325,
from GD.xs:5:
/usr/lib/perl5/5.00503/i386-linux/CORE/perlsdio.h:5: stdio.h: No such file
or directory
In file included from GD.xs:5:
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:336: ctype.h: No such file or
directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:344: locale.h: No such file or
directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:361: setjmp.h: No such file or
directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:367: sys/param.h: No such file
or directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:373: stdlib.h: No such file or
directory
In file included from GD.xs:5:
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:433: string.h: No such file or
directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:523: netinet/in.h: No such
file or directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:527: arpa/inet.h: No such file
or directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:537: sys/stat.h: No such file
or directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:566: sys/time.h: No such file
or directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:573: sys/times.h: No such file
or directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:580: errno.h: No such file or
directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:637: sys/ioctl.h: No such file
or directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:660: dirent.h: No such file or
directory
In file included from
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/syslimits.h:7,
from
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/limits.h:11,
from /usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:860,
from GD.xs:5:
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/limits.h:117:
limits.h:
No such file or directory
In file included from /usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:1121,
from GD.xs:5:
/usr/lib/perl5/5.00503/i386-linux/CORE/unixish.h:93: signal.h: No such file
or directory
In file included from GD.xs:5:
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:1531: math.h: No such file or
directory
In file included from GD.xs:5:
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:2543: sys/ipc.h: No such file
or directory
/usr/lib/perl5/5.00503/i386-linux/CORE/perl.h:2544: sys/sem.h: No such file
or directory
GD.xs:7: gd.h: No such file or directory
GD.xs:14: stdio.h: No such file or directory
make: *** [GD.o] Error 1
/usr/bin/make -- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible
cpan>
----- end log -----
------------------------------
Date: 24 Jan 2001 12:42:53 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: Catching warnings from Getopt::Std
Message-Id: <94mikd$3af$1@mamenchi.zrz.TU-Berlin.DE>
James Taylor <james@NOSPAM.demon.co.uk> wrote in comp.lang.perl.misc:
>In article <94kg4o$br$1@mamenchi.zrz.TU-Berlin.DE>, Anno Siegel
><URL:mailto:anno4000@lublin.zrz.tu-berlin.de> wrote:
>>
>> This may be an occasion where the __WARNINGS__ hook in %SIG comes
>> in handy. Put a handler in there that extracts the faulty key
>> from the warning message and do with it whatever you please. In
>> the code example below I stick them into %options with an undefined
>> value, which is good enough for a demonstration.
>
>More than good enough. This is exactly the sort of thing I need. Thanks.
>
>> sub handle_warning {
>> local $_ = shift;
>> if ( /^Unknown option: (.)$/ ) { # deal only with this one
>> undef $options{ $1}; # the key now exists with an undefined value
>> } else {
>> warn $_; # regenerate warning
>> }
>> }
>
>Wouldn't the "regenerate warning" line result in the handler being
>called in an infinite loop?
No, you can warn in a __WARN__ handler. The documentation mentions
this in passing.
>It is a pity, though, that Getopt::Std doesn't throw errors, because
>it really shouldn't be necessary to do all this messy %SIG handling
>just to discover whether Getopt saw a valid command line.
In another branch of this thread it has been established that
getopts() returns false if an error occurred (and true otherwise).
While this doesn't tell you which faulty switches were given,
you will know if there were any.
Anno
------------------------------
Date: Wed, 24 Jan 2001 23:13:09 +1000
From: "Jeffrey Grace" <gracenews@optusnet.com.au>
Subject: Re: Free SQL server with perl?
Message-Id: <3a6ed4ef$0$16403$7f31c96c@news01.syd.optusnet.com.au>
"brian d foy" <comdog@panix.com> wrote in message
news:comdog-BB755A.02303324012001@news.panix.com...
> In article <94lua9$f05$1@nnrp1.deja.com>, spcman@my-deja.com wrote:
>
> > Ive honestly been searching the net for over a week looking for a free
> > hosting site with SQL and Perl capabilities. I want to start to learn
> > SQL with Perl:DBI but i cannot find a free service.
>
> install freebsd, mysql, and perl on your own box. all of those
> are free (except for the box unless you got it for the holidays). ;)
I agree that setting up a local database/web server is the best way to learn
as you have better access to logs, etc which may help you if you get stuck.
However if you want to show your work to the public, take a look at:
www.spaceports.com or
http://hosting.datablocks.net/
also just for good measure take a look at the following Perl/CGI/DBI related
links:
http://www.wdvl.com/Authoring/Languages/Perl/
(specifically:
http://www.wdvl.com/Authoring/Languages/Perl/PerlfortheWeb/index7.html )
http://www.boutell.com/openfaq/cgi/
http://www.stonehenge.com/merlyn/WebTechniques/
http://www.cgi-resources.com/
http://www.webreview.com/1998/08_21/developers/08_21_98_3.shtml
Jeffrey Grace
------------------------------
Date: Wed, 24 Jan 2001 09:01:32 -0500
From: Keith Phillips <kdp@hom.net>
Subject: GroupWise and Perl
Message-Id: <3A6EE03C.F4276294@hom.net>
Does anyone know how to read e-mail / save attachments from GroupWise
(5.5) through a Perl script? I want to create an automatic process for
saving certain attachments (ASCII files) from a particular e-mail
account, but our mail server is GroupWise. Help!
Keith Phillips
kdp@hom.net
------------------------------
Date: Wed, 24 Jan 2001 13:31:09 GMT
From: Jerome Abela <Jerome.Abela@free.fr>
Subject: Re: How to do this regular expression?
Message-Id: <3A6ED828.EE9E78CD@free.fr>
Rafael Garcia-Suarez a écrit :
> If you want to test whether the last character of a string is a ';',
> just do :
>
> if ((substr $string, length($string) - 1) eq ';') { ... }
/;$/ (please, be polite with your reader)
substr($string,-1), if you really want to use substr.
Jerome.
------------------------------
Date: Wed, 24 Jan 2001 13:26:59 GMT
From: "Vogelfrei" <zarathustra@enviroweb.org>
Subject: Re: How to make Win32 Executables from Perl Scripts?
Message-Id: <DKAb6.4311$KJ3.214559@newsread2.prod.itd.earthlink.net>
"Alberto" <dissc@tsai.es> wrote in message
news:94m810$5ul21@esiami.tsai.es...
> Hi! I'm Newbie and I would like to know how can I make
> Win32 executables from Perl Scripts.
PerlApp in Activestates's PDK does just this
http://www.activestate.com/Products/Perl_Dev_Kit/index.html
------------------------------
Date: 24 Jan 2001 12:09:20 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: kill -HUP only works once
Message-Id: <94mglg$1qr$1@mamenchi.zrz.TU-Berlin.DE>
Abigail <abigail@foad.org> wrote in comp.lang.perl.misc:
>Christian Meisl (meisl@amvt.tu-graz.ac.at) wrote on MMDCCII September
>MCMXCIII in <URL:news:m3vgr6748u.fsf@famvtpc59.tu-graz.ac.at>:
>}} anno4000@lublin.zrz.tu-berlin.de (Anno Siegel) writes:
>}} > Yes. While a process is handling a signal, that signal is blocked.
>}}
>}} Hmmm, I must admit that I have read about this somewhere,
>}} somewhen... ;-)
>
>
>Maybe it's time to point out the most useful book for Perl programmers:
>
> Advanced Programming in the UNIX Environment,
Yup. That's what I consulted.
>by the late Stevens. (Addison Wesley).
Gee, Stevens is dead?
Anno
------------------------------
Date: 24 Jan 2001 11:24:28 GMT
From: inwap@best.com (Joe Smith)
Subject: Re: Lint for perl?
Message-Id: <94me1c$27t3$1@nntp1.ba.best.com>
In article <slrn96p89g.meu.mgjv@martien.heliotrope.home>,
Martien Verbruggen <mgjv@tradingpost.com.au> wrote:
>Nothing can parse Perl but perl.
And as someone else pointed out, it is damn near impossible for a
lint-like program to distinguish between the two "die" line in this example:
unix% cat temp
$|++;
print time / 2 ; # / ; die "This is a comment, not a die() function";
print cos / 2 ; # / ; die "Not a comment, aborting";
unix% perl -l temp
Warning: Use of "cos" without parens is ambiguous at temp line 3.
490167585.5
1
Not a comment, aborting at temp line 3.
unix%
-Joe
--
See http://www.inwap.com/ for PDP-10 and "ReBoot" pages.
------------------------------
Date: Wed, 24 Jan 2001 13:56:31 GMT
From: "Andy Geraerts" <angeraer@hotmail.com>
Subject: Re: Newbie question : Read configuration file.
Message-Id: <jaBb6.261$j4.23673@nreader2.kpnqwest.net>
> Assuming config file is open as CFG:
> while (<CFG>) {
> next if /^#/; # Discard comments
> next unless /^(\w+)=(.*)/; # Ignore bad syntax, empty lines
> $$1 = $2;
> }
>
Thanks, I used the above solution and it works great! Just what I needed.
Didn't know you could create new variables like that.
Could you please explain the "next unless /^(\w+)=(.*)/;" line? :-)
Andy.
------------------------------
Date: Wed, 24 Jan 2001 14:40:48 +0100
From: "Carsten Nielsen" <cnielsen@sinik.de>
Subject: passing parameters to perl cronjob?
Message-Id: <94mm10$eafph$1@ID-60175.news.dfncis.de>
Hi ng,
I've installed a perl-script as cronjob.
The script is called properly but the named parameters that should be passed
to the script are completly ignored.
crontab:
perl /pathto/perlscript.pl name="parameter"
How can I pass parameters to a perl-script in crontab correctly?
post 'ya
Carsten
------------------------------
Date: 24 Jan 2001 12:06:05 GMT
From: inwap@best.com (Joe Smith)
Subject: Re: Pattern Matching Problem
Message-Id: <94mgfd$2aup$1@nntp1.ba.best.com>
In article <9472j7$93p$1@nnrp1.deja.com>, CM <cmon_209@hotmail.com> wrote:
>My data file appears like this...
>
><!--2-->
><data goes here>
><!--2-->
><!--5-->
><data goes here>
><!--5-->
><!--7-->
><data goes here>
><--7-->
FYI: Years ago I wrote a preprocessor for stuff like that.
http://www.inwap.com/mybin/html-include.txt has the reply to the
original message that inspired it.
-Joe
--
See http://www.inwap.com/ for PDP-10 and "ReBoot" pages.
------------------------------
Date: Wed, 24 Jan 2001 12:10:00 +0100
From: Michael Stopp <stopp@eye.ch>
Subject: Perl is bad at (very) simple math!
Message-Id: <3A6EB808.D80DD247@unibas.ubaclu.ch>
Can anybody explain why a perl script as simple as this can fail?
$a = 5.1;
$b = 5;
print $a-$b, "\n";
This produces:
0.0999999999999996
I tested this on a Linux box (Perl 5.005_02, Kernel 2.0.35) and
a Windows machine (Active Perl 5.005_03, Win98): same result.
Can this be true?!? What can one do about this?
Thanks for any advice
Michael
+--------------------------------------------------------------------+
I Why is the word abbreviation so long? I
+--------------------------------------------------------------------+
------------------------------
Date: Wed, 24 Jan 2001 11:28:49 GMT
From: rgarciasuarez@free.fr (Rafael Garcia-Suarez)
Subject: Re: Perl is bad at (very) simple math!
Message-Id: <slrn96tf4e.dru.rgarciasuarez@rafael.kazibao.net>
Michael Stopp wrote in comp.lang.perl.misc:
> Can anybody explain why a perl script as simple as this can fail?
>
> $a = 5.1;
> $b = 5;
> print $a-$b, "\n";
>
> This produces:
>
> 0.0999999999999996
Don't expect floating-point operations to be ultimately accurate on
computers. This is normal behavior and is not Perl related.
Try in C :
int main() {
double a = 5.1;
double b = 5;
printf("%.16f\n",a-b);
}
--> outputs 0.0999999999999996
If you want more precise computation, use a package such as
Math::BigFloat.
BTW the difference between 0.0999999999999996 and 1 is not that large.
The rounding is sufficient for most operations.
--
Rafael Garcia-Suarez / http://rgarciasuarez.free.fr/
------------------------------
Date: Wed, 24 Jan 2001 12:34:38 +0100
From: Josef Moellers <josef.moellers@fujitsu-siemens.com>
Subject: Re: Perl is bad at (very) simple math!
Message-Id: <3A6EBDCE.539D67DD@fujitsu-siemens.com>
Michael Stopp wrote:
> =
> Can anybody explain why a perl script as simple as this can fail?
> =
> $a =3D 5.1;
> $b =3D 5;
> print $a-$b, "\n";
> =
> This produces:
> =
> 0.0999999999999996
> =
> I tested this on a Linux box (Perl 5.005_02, Kernel 2.0.35) and
> a Windows machine (Active Perl 5.005_03, Win98): same result.
> Can this be true?!? What can one do about this?
This is a result of floating point math.
There is little one can do about, because some numbers cannot be
represented exactly using binary floating point math. What one could do
is print with a smaller precision, so the printing algorithm (hopefully)
rounds the result.
-- =
Josef M=F6llers (Pinguinpfleger bei FSC)
If failure had no penalty success would not be a prize
-- T. Pratchett
------------------------------
Date: 24 Jan 2001 12:08:16 GMT
From: abigail@foad.org (Abigail)
Subject: Re: Perl is bad at (very) simple math!
Message-Id: <slrn96thdg.124.abigail@tsathoggua.rlyeh.net>
Michael Stopp (stopp@eye.ch) wrote on MMDCCIII September MCMXCIII in
<URL:news:3A6EB808.D80DD247@unibas.ubaclu.ch>:
|| Can anybody explain why a perl script as simple as this can fail?
||
|| $a = 5.1;
|| $b = 5;
|| print $a-$b, "\n";
||
|| This produces:
||
|| 0.0999999999999996
||
|| I tested this on a Linux box (Perl 5.005_02, Kernel 2.0.35) and
|| a Windows machine (Active Perl 5.005_03, Win98): same result.
|| Can this be true?!? What can one do about this?
What can be done about it is easy: get rid of the idea that doing
floating point arithmetic using binary computers that consist of
a finite amount of atoms is actually feasible.
You also should read the FAQ. Then you wouldn't have bothered the
readers of this group with asking a question that has been asked
here several thousand of times before.
Abigail
--
$_ = "\nrekcaH lreP rehtona tsuJ"; my $chop; $chop = sub {print chop; $chop};
$chop -> () -> () -> () -> () -> () -> () -> () -> () -> () -> () -> () -> ()
-> () -> () -> () -> () -> () -> () -> () -> () -> () -> () -> () -> () -> ()
------------------------------
Date: Wed, 24 Jan 2001 23:34:41 +1100
From: mgjv@tradingpost.com.au (Martien Verbruggen)
Subject: Re: Perl is bad at (very) simple math!
Message-Id: <slrn96tiv1.n5q.mgjv@martien.heliotrope.home>
On Wed, 24 Jan 2001 12:10:00 +0100,
Michael Stopp <stopp@eye.ch> wrote:
> Can anybody explain why a perl script as simple as this can fail?
>
> $a = 5.1;
> $b = 5;
> print $a-$b, "\n";
>
> This produces:
>
> 0.0999999999999996
# man perlfaq4
[First Question]
Data: Numbers
Why am I getting long decimals (eg, 19.9499999999999)
instead of the numbers I should be getting (eg, 19.95)?
In other words: our question is contained in section 4 of the Perl FAQ
(frequently asked questions) list, which is installed on your computer,
together with Perl.
The answer is also there. Use man, or if you're on a system that doesn't
have it, perldoc to read it.
While you're at it, read through the whole FAQ. honestly, it is a source
of really useful information. Even if you can't use it all right now, at
least next time you have a question, you have a much higher chance of
recognising that it may be a frequently asked one.
Martien
--
Martien Verbruggen |
Interactive Media Division | Little girls, like butterflies, need
Commercial Dynamics Pty. Ltd. | no excuse - Lazarus Long
NSW, Australia |
------------------------------
Date: Wed, 24 Jan 2001 11:40:19 GMT
From: Hessu <qvyht@iobox.fi>
Subject: Perl runtime on CD
Message-Id: <3A6EBED4.7891748C@iobox.fi>
Can I burn perl dir to CD and use it that way,
without installing it to certain machine?
------------------------------
Date: 24 Jan 2001 12:09:25 GMT
From: abigail@foad.org (Abigail)
Subject: Re: Perl runtime on CD
Message-Id: <slrn96thfl.124.abigail@tsathoggua.rlyeh.net>
Hessu (qvyht@iobox.fi) wrote on MMDCCIII September MCMXCIII in
<URL:news:3A6EBED4.7891748C@iobox.fi>:
,, Can I burn perl dir to CD and use it that way,
,, without installing it to certain machine?
Well, of course.
Abigail
--
sub A::TIESCALAR{bless\my$x=>A};package B;@q[0..3]=qw/Hacker Perl
Another Just/;use overload'""'=>sub{pop @q};sub A::FETCH{bless\my
$y=>B}; tie my $shoe => qq 'A';print "$shoe $shoe $shoe $shoe\n";
------------------------------
Date: Wed, 24 Jan 2001 13:53:34 GMT
From: garry@zvolve.com (Garry Williams)
Subject: Re: Please help how to use Open3
Message-Id: <y7Bb6.197$GF2.8523@eagle.america.net>
On Wed, 24 Jan 2001 05:06:51 GMT, tuoihong@my-deja.com
<tuoihong@my-deja.com> wrote:
>In article <YAsb6.155$GF2.6376@eagle.america.net>,
> garry@zvolve.com (Garry Williams) wrote:
>> On Wed, 24 Jan 2001 01:58:59 GMT, tuoihong@my-deja.com
>> <tuoihong@my-deja.com> wrote:
>> >
>> >(by the way useing Net::Ftp module is not an option).
>>
>> Why not? It's really what you want. (Well, Net::FTP is.)
>
>Because my manager claims its too slow. It's not my call.
Well, you're screwed, then. Not because of the problem you have to
solve -- that may be fun -- because of the person you work for. Maybe
you should look at the Expect module or IPC::Open2.
^
^
It's hard to understand why Net::FTP's speed would be significant when
there's some wide-area network involved. And, if it's a local-area
network, then maybe scp (or rcp) would be a better choice. Did your
manager benchmark Net::FTP? Against what? If speed *is* an issue,
why is Perl being used?
--
Garry Williams
------------------------------
Date: Wed, 24 Jan 2001 13:49:27 GMT
From: tadmc@augustmail.com (Tad McClellan)
Subject: Re: Shareware: txt2pdf 4.3
Message-Id: <slrn96te55.32c.tadmc@tadmc26.august.net>
SANFACE Software <sanface@sanface.com> wrote:
>txt2pdf is a very flexible and powerful PERL5 program
This appears to have been spammed (posted individually)
to 16 newsgroups this time.
Looks like it was also multiposted to 16 newsgroups in December.
And some last October.
And last June.
And April too...
Sheesh!
>We trust you.
Newsgroup readers: you decide if you want to trust a proven spammer.
--
Tad McClellan SGML consulting
tadmc@augustmail.com Perl programming
Fort Worth, Texas
------------------------------
Date: Wed, 24 Jan 2001 12:03:19 GMT
From: "Koen Bossaert" <not@defined.com>
Subject: Re: stability of threads + interpreter performance
Message-Id: <bwzb6.546$KQ4.1908@nreader1.kpnqwest.net>
"James Richardson" <time4tea@monmouth.com> wrote in message
news:94lpp2$k40$1@slb6.atl.mindspring.net...
> "Koen Bossaert" <not@defined.com> wrote in message
> news:8jYa6.77$j4.10000@nreader2.kpnqwest.net...
>
> > Can anyone tell me if it [perl threading] is stable enough to use in
> business applications?
>
> No.
>
> Well, I wouldn't.
>
> Theres quite a few caveats that you have to be aware of, and many
extensions
> dont cater for threaded perl.
> IMHO if you have to be reassured that its stable enough, it probably
isn't.
> Remember you're the one whos going to be doing the
> repairs if stuff crashes & burns.
indeed :-(
> You can check the Event module for possible alternative.
It's an interesting module, but I don't think it's the solution I'm looking
for because from what I read I understood that I can't share data between
the callback function used to handle the events and the main app.
My problem is following : I need a script that connects to a few servers
every so many seconds to get some information. Then it uses that information
in some calculations and the result is stored in memory. In the mean time
it should listen at a certain port to provide clients that connect with the
latest results from the calculations. I thought 2 threads could be the
solution because they share the same memory.
Thanks for your help.
Koen
------------------------------
Date: 24 Jan 2001 13:10:30 GMT
From: damian@qimr.edu.au (Damian James)
Subject: Re: stability of threads + interpreter performance
Message-Id: <slrn96tl36.kvq.damian@puma.qimr.edu.au>
Thus spake Koen Bossaert on Wed, 24 Jan 2001 12:03:19 GMT:
>...
>
>My problem is following : I need a script that connects to a few servers
>every so many seconds to get some information. Then it uses that information
>in some calculations and the result is stored in memory. In the mean time
>it should listen at a certain port to provide clients that connect with the
>latest results from the calculations. I thought 2 threads could be the
>solution because they share the same memory.
>
Use an RDBMS and separate processes. Why try to keep state in memory? What
happens when your UPS dies because the air-con serviceman has plugged his
welder into the machine room power circuit. Have the polling processes
update the data, then let the server process serve it out.
HTH
Cheers,
Damian
------------------------------
Date: 24 Jan 2001 13:22:15 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: Trouble sorting array
Message-Id: <94mku7$3af$2@mamenchi.zrz.TU-Berlin.DE>
David Waters <davidwaters@bigfoot.com> wrote in comp.lang.perl.misc:
>I have the following lines of text as separate elements in an array
>(not necessarily in this order).
>
>3,postcode,ro_address
>3+,line_two,ro_address
>2,accounts_type,companies_house_data
>2,acc_ref_date,companies_house_data
>2,acc_made_up_date,companies_house_data
>2+,ro_address,companies_house_data
>1+,companies_house_data,
>
>
>I would like to sort the array in reverse order so it would be 3's then
>2's then 1's. However, there are some lines which have a '+' after the
>number which I would like to be at the top of each set of numbers.
>
>so the result should be
>
>3+,line_two,ro_address
>3,postcode,ro_address
>2+,ro_address,companies_house_data
>2,accounts_type,companies_house_data
>2,acc_ref_date,companies_house_data
>2,acc_made_up_date,companies_house_data
>1+,companies_house_data,
Just split each line on comma and reverse-sort on the first element.
Consider a Schwartz transform or a GRT, though the individual lists
are probably too short for that to gain anything.
Anno
------------------------------
Date: Wed, 24 Jan 2001 13:29:53 GMT
From: garry@zvolve.com (Garry Williams)
Subject: Re: Trouble sorting array
Message-Id: <lNAb6.195$GF2.8523@eagle.america.net>
On Wed, 24 Jan 2001 10:34:31 GMT, David Waters <davidwaters@bigfoot.com> wrote:
>I have the following lines of text as separate elements in an array
>(not necessarily in this order).
>
>3,postcode,ro_address
>3+,line_two,ro_address
>2,accounts_type,companies_house_data
>2,acc_ref_date,companies_house_data
>2,acc_made_up_date,companies_house_data
>2+,ro_address,companies_house_data
>1+,companies_house_data,
>
>
>I would like to sort the array in reverse order so it would be 3's then
>2's then 1's. However, there are some lines which have a '+' after the
>number which I would like to be at the top of each set of numbers.
This is a FAQ. See perlfaq4, "How do I sort an array by (anything)?".
--
Garry Williams
------------------------------
Date: Wed, 24 Jan 2001 13:25:19 GMT
From: Jerome Abela <Jerome.Abela@free.fr>
Subject: Re: Type globs
Message-Id: <3A6ED6C9.35FFE11A@free.fr>
CM a écrit :
>
> While aliasing a list into a subroutine I get problems when I use 'my'
> but works allright with 'local'
>
> local (*printarray) = @_; # THIS DOES NOT WORK IF
> # IF REPLACED BY
> # my (*printarray) = @_;
"my (*a)" doesn't mean anything, as a glob is an entry in a symbol
table, and lexically scoped variables are not stored in any symbol
table.
Jerome.
------------------------------
Date: Wed, 24 Jan 2001 13:49:27 GMT
From: tadmc@augustmail.com (Tad McClellan)
Subject: Re: Type globs
Message-Id: <slrn96tghj.32c.tadmc@tadmc26.august.net>
CM <cmon_209@hotmail.com> wrote:
>If the 'local' is changed to 'my' the following error message is
>displayed.
>
>"Cant declare ref-to-glob cast"
^^^^
Please include the *verbatim* message, not a paraphrase.
>Can somebody guide me thru this?
All of the messages that perl might issue are documented in
the perldiag.pod man page. You should look them up there
as a *first* (i.e. before posting to Usenet) troubleshooting
step.
----------------------
=item Can't declare %s in "%s"
(F) Only scalar, array, and hash variables may be declared as "my" or
"our" variables. They must have ordinary identifiers as names.
----------------------
--
Tad McClellan SGML consulting
tadmc@augustmail.com Perl programming
Fort Worth, Texas
------------------------------
Date: Wed, 24 Jan 2001 11:54:22 GMT
From: "Debian User" <pking123@sympatico.ca>
Subject: Upgrading to Perl 5.6 under Debian 2.2
Message-Id: <Onzb6.113962$JT5.4070731@news20.bellglobal.com>
Hello:
In brief, I changed my mind about upgrading to 5.6 under Debian
due to the problems it was causing in the operating system.
I have downgraded, but I wish to upgrade some time in the near
future, but I also wish to find some way to get the new version
of Perl to know about Debian's Perl scripts/modules/libraries
(for things like apt, emacs, window managers, Gimp, dselect,
and so on), which almost never reside in a version-specific
directory under the Perl directory tree. The adds/upgrades
I intend to do in particular are sweeping, including the
addition or upgrading of the internet-specific and CGI modules.
CPAN requires that I upgrade to Perl 5.6 first before I begin.
The upgrading I was doing was through CPAN using the Perl shell
command:
perl -MCPAN -e shell
and then using various "install" commands for each module or
library. But this appears to break many of Debian's scripts.
Any help on how to upgrade Perl while recognising Debian's
scripts and libraries would be appreciated.
Paul King
------------------------------
Date: Wed, 24 Jan 2001 23:43:39 +1100
From: mgjv@tradingpost.com.au (Martien Verbruggen)
Subject: Re: Upgrading to Perl 5.6 under Debian 2.2
Message-Id: <slrn96tjfr.n5q.mgjv@martien.heliotrope.home>
[removed comp.lang.perl. That group hasn't existed for years. Notify
your news admin]
[remove alt.perl. That group doesn't exist as far as I'm concerned]
On Wed, 24 Jan 2001 11:54:22 GMT,
Debian User <pking123@sympatico.ca> wrote:
> Hello:
>
> In brief, I changed my mind about upgrading to 5.6 under Debian
> due to the problems it was causing in the operating system.
I doubt it sincerely. Perl would not in any way cause your OS to become
unstable. Maybe you've got some tools that were expecting another
version of Perl, and that didn't deal with the newer version correctly,
but I'd hardly call that 'problem in the operating system'.
What exactly were the symptoms? And maybe you should report them to
Debian, so they can investigate how it is possible that something like
Perl can cause their OS to have problems.
> I have downgraded, but I wish to upgrade some time in the near
> future, but I also wish to find some way to get the new version
> of Perl to know about Debian's Perl scripts/modules/libraries
> (for things like apt, emacs, window managers, Gimp, dselect,
> and so on), which almost never reside in a version-specific
> directory under the Perl directory tree. The adds/upgrades
Install Perl in /opt/perl-$version. Set your system wide PERL5LIB path
to include any other directories you want searched for modules. scripts
are never a problem.
How does the perl version that Debian installs deal with this? Because
they of course also don't have these modules in the standard directory.
Of course, you can always install the modules in your perl tree
yourself.
> I intend to do in particular are sweeping, including the
> addition or upgrading of the internet-specific and CGI modules.
The CGI module comes with Perl. All you need to do is upgrade it now and
again. The libnet and libwww modules almost install themselves.
> CPAN requires that I upgrade to Perl 5.6 first before I begin.
Huh? If it does, you might want to get an older version of CPAN, but I
doubt it would.
> The upgrading I was doing was through CPAN using the Perl shell
> command:
> perl -MCPAN -e shell
> and then using various "install" commands for each module or
> library. But this appears to break many of Debian's scripts.
Well... No offense, but then the Debian scripts are broken. They
shouldn't care.
> Any help on how to upgrade Perl while recognising Debian's
> scripts and libraries would be appreciated.
I fail to see the real problem. If you upgrade Perl in-place, you should
still have all your old modules around. if you install a new version in
a different place, you just need to install the appropriate modules, or
set PERL5LIB.
Doesn't Debian have a package fot 5.6.0 yet? How Slack.
Martien
--
Martien Verbruggen |
Interactive Media Division | If at first you don't succeed, try
Commercial Dynamics Pty. Ltd. | again. Then quit; there's no use
NSW, Australia | being a damn fool about it.
------------------------------
Date: 24 Jan 2001 13:18:50 GMT
From: damian@qimr.edu.au (Damian James)
Subject: Re: Upgrading to Perl 5.6 under Debian 2.2
Message-Id: <slrn96tliq.kvq.damian@puma.qimr.edu.au>
Thus spake Martien Verbruggen on Wed, 24 Jan 2001 23:43:39 +1100:
>
>... Maybe you've got some tools that were expecting another
>version of Perl, and that didn't deal with the newer version correctly,
>but I'd hardly call that 'problem in the operating system'.
>
Actually, I once managed to break lp on a DG/UX installation by upgrading
to Perl 5. Seriously, the lp that shipped with the system depended on Perl
4, and didn't work with 5. The word from the vendor was "upgrade DG/UX!",
but since (for us) that would have meant a hardware upgrade too, it was no
go. I ended up running /usr/bin/perl5 next to /usr/bin/perl (4), and did
some interesting things with environment variables to make @INC work.
Cheers,
Damian (who is now two jobs past that nightmare site)
------------------------------
Date: 24 Jan 2001 11:48:14 GMT
From: ebohlman@omsdev.com (Eric Bohlman)
Subject: Re: Why do 'or' and '||' behave strangely different?
Message-Id: <94mfdu$2f3$1@bob.news.rcn.net>
Wolfram Humann <whumann@my-deja.com> wrote:
> Can anybody tell me why I can test for 'shift @x' returning undef
> because the array is empty using '||' but not using 'or'?
> Sample script:
> 1 #!/usr/local/bin/perl -w
> 2
> 3 use strict;
> 4
> 5 my @x = (" a ", " b ");
> 6
> 7 print shift @x or " 1 ";
Parsed as (print shift @x) or " 1 ";
> 8 print shift @x || " 2 ";
Parsed as print (shift @x || " 2 ");
> I can't really make sense out of this...
Precedence, my friend, precedence.
------------------------------
Date: Wed, 24 Jan 2001 23:28:43 +1100
From: mgjv@tradingpost.com.au (Martien Verbruggen)
Subject: Re: Why do 'or' and '||' behave strangely different?
Message-Id: <slrn96tijr.n5q.mgjv@martien.heliotrope.home>
On Wed, 24 Jan 2001 10:49:34 GMT,
Wolfram Humann <whumann@my-deja.com> wrote:
> Can anybody tell me why I can test for 'shift @x' returning undef
> because the array is empty using '||' but not using 'or'?
You've got precedence problems.
What you post beneath isn't actually testing that, because the
precedence of or binds less tightly than the print.
> Sample script:
>
> 1 #!/usr/local/bin/perl -w
> 2
> 3 use strict;
> 4
> 5 my @x = (" a ", " b ");
> 6
> 7 print shift @x or " 1 ";
This is the same as
(print STDOUT shift @x) or " 1 ", which gives the warnings below.
What you want to do is
print +(shift @x or " 1 ");
or
print STDOUT (shift @x or " 1 ");
> 8 print shift @x || " 2 ";
And this parses as
print STDOUT (shift @x || " 2 ");
which is what you intended.
> 9 print shift @x or " 3 ";
> 10 print shift @x || " 4 ";
> 11 print "\n";
>
> Reply:
>
> Useless use of a constant in void context at /tmp/or-test line 7.
> Useless use of a constant in void context at /tmp/or-test line 9.
> Use of uninitialized value at /tmp/or-test line 9.
> a b 4
To fix:
print +(shift(@x) or " 1 ");
print shift(@x) || " 2 ";
print +(shift(@x) or " 3 ");
print shift(@x) || " 4 ";
> I can't really make sense out of this...
Read perlop, and pay special attention to the differences (yes, plural)
between or and ||. Precedence is one, context for the left operand
another.
Precedence, and the consequences of these things, are quite well
explained in the perlop documentation. There's even an example with
chdir, || and * to illustrate what can happen.
When in doubt, use brackets (or parentheses, for the US English
speakers).
Just as some extra pedantry, I'll repeat your original question:
> Can anybody tell me why I can test for 'shift @x' returning undef
> because the array is empty using '||' but not using 'or'?
Please note that you can't distinguish whether shift returns undef
because the array is empty, or because the element simply happens to
contain the undefined value. Furthermore, with this technique, you are
not testing for defined, but whether shift returns a true value. Other
false values will also trigger the secondary condition.
For an illustration, change the array in your example to
@s = (0, "", undef, "a");
Martien
--
Martien Verbruggen |
Interactive Media Division | Useful Statistic: 75% of the people
Commercial Dynamics Pty. Ltd. | make up 3/4 of the population.
NSW, Australia |
------------------------------
Date: Wed, 24 Jan 2001 13:35:48 GMT
From: Wolfram Humann <whumann@my-deja.com>
Subject: Re: Why do 'or' and '||' behave strangely different?
Message-Id: <94mlnj$pr$1@nnrp1.deja.com>
All right, I read (and re-read) the chapter on "Terms and List
Operators" in the camel book. When I thought I understood something, I
wondered why something written as
print shift @x || " 2 ";
was NOT parsed as
print (shift (@x || " 2 "));
(which is why I used 'or' in the first place).
After some more reading I hope that I also understand the difference
between unary and list operators and their precedence.
Thanks a lot for your help.
Wolfram
In article <94mfdu$2f3$1@bob.news.rcn.net>,
ebohlman@omsdev.com (Eric Bohlman) wrote:
> Wolfram Humann <whumann@my-deja.com> wrote:
> > Can anybody tell me why I can test for 'shift @x' returning undef
> > because the array is empty using '||' but not using 'or'?
>
> > Sample script:
>
> > 1 #!/usr/local/bin/perl -w
> > 2
> > 3 use strict;
> > 4
> > 5 my @x = (" a ", " b ");
> > 6
> > 7 print shift @x or " 1 ";
>
> Parsed as (print shift @x) or " 1 ";
>
> > 8 print shift @x || " 2 ";
>
> Parsed as print (shift @x || " 2 ");
>
> > I can't really make sense out of this...
>
> Precedence, my friend, precedence.
>
>
Sent via Deja.com
http://www.deja.com/
------------------------------
Date: 16 Sep 99 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 16 Sep 99)
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: The mail to news gateway, and thus the ability to submit articles
| through this service to the newsgroup, has been removed. I do not have
| time to individually vet each article to make sure that someone isn't
| abusing the service, and I no longer have any desire to waste my time
| dealing with the campus admins when some fool complains to them about an
| article that has come through the gateway instead of complaining
| to the source.
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 V10 Issue 132
**************************************