[9458] in Perl-Users-Digest
Perl-Users Digest, Issue: 3054 Volume: 8
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Jul 3 16:17:00 1998
Date: Fri, 3 Jul 98 13:10:45 -0700
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, 3 Jul 1998 Volume: 8 Number: 3054
Today's topics:
Re: Title Caps <Tony.Curtis+usenet@vcpc.univie.ac.at>
Re: Title Caps <kassner@intershop.de>
trimming white space <+REMOVE_TO_REPLY+brian.mathis@teradyne.com>
Re: trimming white space (Larry Rosler)
Re: trimming white space (Josh Kortbein)
Re: Uploading image files (brian d foy)
Re: Uploading image files <tjchamberlain@hotmail.com>
Re: Uploading image files (John Hocking)
Re: Uploading image files <tjchamberlain@hotmail.com>
Re: Uploading image files <Tony.Curtis+usenet@vcpc.univie.ac.at>
Re: Uploading perl scripts with a perl script. (Eric)
Re: Using goto & with SUPER:: (Charles DeRykus)
Re: Using the read function...? (Mark-Jason Dominus)
Variable interpolation in a string xavier.grosjean@thepentagon.com
Re: Variable interpolation in a string (Tad McClellan)
Re: Variable interpolation in a string (Larry Rosler)
Re: Virtual functions. (Kevin Reid)
Re: Virtual functions. <jdporter@min.net>
Re: Virtual functions. <igor.k@usa.net>
Re: Virtual functions. <igor.k@usa.net>
Re: Virtual functions. (Mark-Jason Dominus)
Re: Virtual functions. <zenin@bawdycaste.org>
webmaster/developer Amiche@my-dejanews.com
Re: What a Crappy World <tommyk@mekb2.sps.mot.com>
Re: while (<CSV_FILE>) doesn't work with NT (Tim Rosine)
Re: while (<CSV_FILE>) doesn't work with NT scythale@my-dejanews.com
WHILE loop - String Increment <conservative-party@iname.com>
Re: WHILE loop - String Increment (Craig Berry)
Re: WHILE loop - String Increment <conservative-party@iname.com>
Why is the autodecrement not magical? (Josh Kortbein)
Re: Why is the autodecrement not magical? (Dominic Dunlop)
Why no Perl news/mailreader? (Gossamer)
Re: Why no Perl news/mailreader? (Michael J Gebis)
Re: Why no Perl news/mailreader? (Charlie Stross)
Year 2000 Questions Forum Group Forum missoula_y2k@my-dejanews.com
Re: Year 2000 Questions Forum Group Forum (Bob Trieger)
Digest Administrivia (Last modified: 8 Mar 97) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 01 Jul 1998 10:52:50 +0200
From: Tony Curtis <Tony.Curtis+usenet@vcpc.univie.ac.at>
Subject: Re: Title Caps
Message-Id: <7xaf6ulzq4.fsf@beavis.vcpc.univie.ac.at>
Re: Title Caps, Richard <rremington@westaff.com> said:
Richard> I've been working on a something I'm sure someone
Richard> has done before. I'm pulling ascii data from an
Richard> Oracle database using DBI. The data I get is
Richard> sometimes all caps, sometimes lower case, and
Richard> sometimes title caps. I want to convert everything
Richard> to lower case and then convert to title caps. The
Try something like this:
split /\s+/ perldoc -f split
to get an array of `words' (you may need to be slightly
cleverer here depending on what exactly you want to define
as words).
lc perldoc -f lc
will convert each word to lower case.
ucfirst perldoc -f ucfirst
will Capitalise each word
So a construction along the lines of:
map {ucfirst(lc $_)} split(/\s+/, $your_input_here);
would be my first hack.
hth
tony
--
Tony Curtis, Systems Manager, VCPC, | Tel +43 1 310 93 96 - 12; Fax - 13
Liechtensteinstrasse 22, A-1090 Wien, AT | http://www.vcpc.univie.ac.at/
"You see? You see? Your stupid minds! Stupid! Stupid!" ~ Eros, Plan9 fOS.
------------------------------
Date: Fri, 03 Jul 1998 10:07:38 +0200
From: Dirk Kassner <kassner@intershop.de>
To: Richard Remington <rremington@westaff.com>
Subject: Re: Title Caps
Message-Id: <359C914A.7810@intershop.de>
Try this:
$city = 'sAnKt petersBUrg In ruSSia';
$city =~ s/\b(\w)(\w*)\b/uc($1).lc($2)/ge;
print "$city\n";
> Sankt Petersburg In Russia
Richard Remington wrote:
>
> I've been working on a something I'm sure someone has done before. I'm
> pulling ascii data from an Oracle database using DBI. The data I get is
> sometimes all caps, sometimes lower case, and sometimes title caps. I
> want to convert everything to lower case and then convert to title caps.
> The following code is messy and requires that I type it out for every
> scalar I pull from the database. I know I can clean this up and find a
> less cumbersome solution but I'm asking if anyone has done something
> like this if they can help because I need to include this feature in a
> project whose deadline is fast approaching. I want to have a function
> that I run every scalar through to convert it to title case.
>
> $city =~ tr/A-Z/a-z/; # Convert string to
> all lower case.
> ($part1, $part2, $part3) = split / /, $city; # There may be more than
> one word in the scalar.
> substr($part1,0,1) =~ tr/a-z/A-Z/; # Convert the 1st three to
> title caps.
> substr($part2,0,1) =~ tr/a-z/A-Z/; # but what if there were
> four words?
> substr($part3,0,1) =~ tr/a-z/A-Z/; # Keep typing this line
> forever?
> $city = join ' ', $part1,$part2,$part3; # Put the title capped
> pieces back together again.
>
> If $city were SIOUX CITY, it would become sioux city and then Sioux City
> but there has to be a more elegant way especially with 20 fields per
> entry. Any help is greatly appreciated.
>
> Richard
> Webmaster
> Western Staff Services
Dirk
------------------------------
Date: Thu, 02 Jul 1998 14:37:03 -0500
From: Brian Mathis <+REMOVE_TO_REPLY+brian.mathis@teradyne.com>
Subject: trimming white space
Message-Id: <359BE15F.54BEB9C5@teradyne.com>
I am sure that I am overlooking something silly... but I really
could use some help here...
I am trying to trim a variable amount of white space from the end
of a variable length string. Why doesn't this work?:
s/$\s+//g;
How else could I accomplish this?
Thanks for any help.
-Brian
------------------------------
Date: Thu, 2 Jul 1998 17:09:41 -0700
From: lr@hpl.hp.com (Larry Rosler)
Subject: Re: trimming white space
Message-Id: <MPG.1005c1232c712bb09896e4@nntp.hpl.hp.com>
In article <359BE15F.54BEB9C5@teradyne.com> on Thu, 02 Jul 1998 14:37:03
-0500, Brian Mathis <+REMOVE_TO_REPLY+brian.mathis@teradyne.com> says...
> I am sure that I am overlooking something silly... but I really
> could use some help here...
>
> I am trying to trim a variable amount of white space from the end
> of a variable length string. Why doesn't this work?:
>
> s/$\s+//g;
Actually, you overlooked two things.
1. The $ anchor means the end of the string, and there can only be one
of them, so your regex should be
s/\s+$//;
2. This is a Frequently Asked Question, which is discussed in perlfaq4:
"How do I strip blank space from the beginning/end of a string?"
--
Larry Rosler
Hewlett-Packard Laboratories
http://www.hpl.hp.com/personal/Larry_Rosler/
lr@hpl.hp.com
------------------------------
Date: 3 Jul 1998 18:29:43 GMT
From: kortbein@iastate.edu (Josh Kortbein)
Subject: Re: trimming white space
Message-Id: <6nj7un$j49$3@news.iastate.edu>
Brian Mathis (+REMOVE_TO_REPLY+brian.mathis@teradyne.com) wrote:
: I am sure that I am overlooking something silly... but I really
: could use some help here...
: I am trying to trim a variable amount of white space from the end
: of a variable length string. Why doesn't this work?:
: s/$\s+//g;
The $ matches at the end of a string, not the end of the information
you're interested in having from the end of a string. Try
s/\s+$//g;
Josh
--
________________________________________________________________________
Interviewer: "So Frank, you have long hair. Does that make you a woman?"
Frank Zappa: "You have a wooden leg. Does that make you a table?"
------------------------------
Date: Thu, 02 Jul 1998 00:21:27 -0400
From: comdog@computerdog.com (brian d foy)
Subject: Re: Uploading image files
Message-Id: <comdog-ya02408000R0207980021270001@news.panix.com>
Keywords: from just another new york perl hacker
In article <359B021E.E429DB23@triologic.com>, Nick Forte <webmaster@triologic.com> posted:
>Having the same problem! See posts on File upload - Need Help.
>Reason is the file is being written to the server as an owner who doesn't
>have permission to write to the disk (in my case it is 'nobody'). Still
>trying to find solution. Let me know if you get anything.
how about giving that owner or group write permission?
or changing the owner of the process (which i leave to the reader
to figure out, since it's a thoughtful sort of thing)?
good luck :)
--
brian d foy <comdog@computerdog.com>
CGI Meta FAQ <URL:http://computerdog.com/CGI_MetaFAQ.html>
Comprehensive Perl Archive Network (CPAN) <URL:http://www.perl.com>
Perl Mongers T-shirts! <URL:http://www.pm.org/tshirts.html>
------------------------------
Date: Thu, 02 Jul 1998 20:19:22 +1000
From: Toby Chamberlain <tjchamberlain@hotmail.com>
To: Nick Forte <webmaster@triologic.com>
Subject: Re: Uploading image files
Message-Id: <359B5EAA.F0889AD2@hotmail.com>
Thanks for the support Nick, but that's not my problem.. the directory is
chmodded 777 and the actual .gif file (and another file that the script
creates) are both there, it's just that the .gif file is 0 bytes in size :)
The problem is in sending the .gif as part of the POST... it doesn't seem to
be all there. When I try it with text files it works fine, JPEGs don't work
either.....
... any other ideas??
Toby
Nick Forte wrote:
> Having the same problem! See posts on File upload - Need Help.
> Reason is the file is being written to the server as an owner who doesn't
> have permission to write to the disk (in my case it is 'nobody'). Still
> trying to find solution. Let me know if you get anything.
------------------------------
Date: Fri, 03 Jul 1998 04:12:25 GMT
From: joker@inlink.com (John Hocking)
Subject: Re: Uploading image files
Message-Id: <359c57eb.44062682@news.inlink.com>
On Thu, 02 Jul 1998 20:19:22 +1000, Toby Chamberlain
<tjchamberlain@hotmail.com> wrote:
>Thanks for the support Nick, but that's not my problem.. the directory is
>chmodded 777 and the actual .gif file (and another file that the script
>creates) are both there, it's just that the .gif file is 0 bytes in size :)
>The problem is in sending the .gif as part of the POST... it doesn't seem to
>be all there. When I try it with text files it works fine, JPEGs don't work
>either.....
>
I noticed you are trying to upload images if the post method
Are you using the ENCTYPE="multipart/form-data" with your post?
<form ENCTYPE="multipart/form-data"
ACTION="../cgi-bin/file-upload.cgi" METHOD="POST" name="upload">
here is an example html that might help.
<html>
<head>
<title>To upload a new image</title>
<script language="Javascript">
<!-- Begin hiding code
function validdata()
{
var testvar="true";
if (document.upload.saveasfilename.value == "")
{ alert('You must enter the name of the file to be saved');
testvar="false";}
if (document.upload.uploadfile.value == "")
{ alert('You must enter the name of the file to be uploaded');
testvar="false";}
return testvar;
}
function senddata()
{
if (validdata() == "true")
{document.upload.submit();}
}
function goback()
{
window.parent.location.href="../admin/index.html";
}
// end hiding code -->
</script>
</head>
<base target="main">
<body bgcolor="#FFFFFF">
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%" align="center"><font face="Arial" size="4"
color="#11369C">To upload a
new image, fill out the form below: </font><form
ENCTYPE="multipart/form-data"
ACTION="../cgi-bin/file-upload.cgi" METHOD="POST" name="upload">
<div align="left"><table border="0" cellpadding="0"
cellspacing="0" width="100%">
<tr>
<td align="right" width="30%"><font face="Arial" size="3"
color="#11369C">Filename On The
Server: </font></td>
<td width="50%"><font face="Arial" color="#11369C"><input
TYPE="TEXT"
NAME="saveasfilename" SIZE="35"></font></td>
</tr>
<tr>
<td align="right" width="30%"><font face="Arial" size="3"
color="#11369C">File To Upload:
</font></td>
<td width="50%"><font face="Arial" color="#11369C"><input
TYPE="FILE" NAME="uploadfile"
SIZE="35"></font></td>
</tr>
</table>
</div><p><font face="Arial" color="#11369C"><input TYPE="button"
VALUE="Upload The File!" onClick="senddata()"> <input
TYPE="button" VALUE="Back to Admin" onClick="goback()">
</font></p>
</form>
</td>
</tr>
</table>
</center></div>
</body>
</html>
The permission settings depend on how the server is set up.
I had a problem with a local ISP whose server required me to set up
777 on the image directory in order to write files. I could
understand the world write but not the exec on the directory. The
tech told me that there server required exec to perform the write from
an outside source. Seems like a security hole to me
Hope this helps
John
John Hocking
Sr. Programmer
StudioPointe Incorporated
http://www.studiopointe.com
mailto:johnh@studiopointe.com
------------------------------
Date: Fri, 03 Jul 1998 23:00:15 +1000
From: Toby Chamberlain <tjchamberlain@hotmail.com>
Subject: Re: Uploading image files
Message-Id: <359CD5DE.BDE7AB06@hotmail.com>
John Hocking wrote: I noticed you are trying to upload images if the post method
> Are you using the ENCTYPE="multipart/form-data" with your post?
>
Sure am :) The only thing (that I can see) that I'm doing different to the
examples I see around the Web is that I wrote my own (embarrassing) function to
parse the form data... but the problem seems to happen before that... the form
data seems to be being sent incomplete... anyway here's my code in case I am
doing something stupid....
The HTML :
<HTML>
<HEAD>
</HEAD>
<BODY>
<FORM ENCTYPE="multipart/form-data" ACTION="/~toby/cgi-bin/puzzle/setdat.cgi"
METHOD=POST ACCEPT="image/gif">
Select the .gif to upload...
<INPUT TYPE=FILE NAME="GIFFILE"><BR>
And enter the number of columns and rows to make it into...<BR>
Columns :<INPUT TYPE=TEXT NAME="COLS" VALUE=3><BR>
Rows :<INPUT TYPE=TEXT NAME="ROWS" VALUE=3><BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
and the Perl (which is in a correctly set up CGI directory, as I said, the script
runs fine, creates the right files in the right places, just doesn't get the data
to put in them)
#!/usr/bin/perl
binmode STDIN;
binmode STDOUT;
binmode STDERROR;
read(STDIN, $QUERY, $ENV{"CONTENT_LENGTH"});
# Uncomment the next line to see what is being sent in the POST
#&HTMLDie("<pre>$QUERY</pre>");
%FORM = &GetForm($QUERY);
$GIFFILE = $FORM{GIFFILE};
$FORM{GIFFILE} =~ /([^\/\\]+).gif$/;
$DIR = $1;
$DATAFILE = ">/home/toby/www/cgi-bin/puzzle/$DIR.dat";
$LOCALGIF = ">/home/toby/www/cgi-bin/puzzle/$DIR.gif";
open LOCALGIF or&HTMLDie("Couldn't open the local image file
>/home/toby/www/cgi-bin/puzzle/$DIR.gif");
binmode LOCALGIF;
@LINES = <$GIFFILE>;
print LOCALGIF @LINES;
close LOCALGIF;
chmod (664, $LOCALGIF);
open DATAFILE or &HTMLDie("Couldn't open the data file
>/home/toby/www/cgi-bin/puzzle/$DIR.dat");
print DATAFILE $FORM{COLS}, "\n";
print DATAFILE $FORM{ROWS}, "\n";
close DATAFILE;
chmod (664, $DATAFILE);
print "Location: success.html\n\n";
exit 0;
#-------------- Get Form function -------------
# Read the form into a hash (%in).
sub GetForm {
local %in;
my($in, $name, $value);
$in = shift;
# Get Name/Value pairs and decode....
foreach ($in =~ /\sname="([^\s]+)"[;\s]+filename="([^\s]+)"[;\s]/g) {
$name = $1;
$name =~ s/\+/ /g;
$name=~ s/%(..)/sprintf("%c",hex($1))/ge;
$value = $2;
$value=~ s/%(..)/sprintf("%c",hex($1))/ge;
$value =~ s/\+/ /g;
$in{$name}.= $value;
}
%in;
}
# Exit with a HTML response.
sub HTMLDie {
$MESSAGE = shift;
print "Content-type: text/html\n\n";
print "<CENTER><B><BIG>ERROR</BIG></B></CENTER><BR>\n";
print $MESSAGE;
die $MESSAGE;
}
NOTE : The script has been hacked a bit as I've tried to get it to work... so
ignore all the stuff about the datafile, that works fine... just let me know if
you know why the .gif isn't getting through. BTW, the server is Apache on Linux
and I'm at home on Win95 if that at all makes a diff.
------------------------------
Date: 03 Jul 1998 16:06:56 +0200
From: Tony Curtis <Tony.Curtis+usenet@vcpc.univie.ac.at>
Subject: Re: Uploading image files
Message-Id: <7x3ecjowov.fsf@fidelio.vcpc.univie.ac.at>
Re: Uploading image files, Toby
<tjchamberlain@hotmail.com> said:
Toby> read(STDIN, $QUERY, $ENV{"CONTENT_LENGTH"});
Toby> #-------------- Get Form function ------------- # Read
Toby> the form into a hash (%in).
Toby> sub GetForm { local %in; my($in, $name, $value);
&reinvent('wheel') && die;
Why not:
use CGI;
and life suddenly becomes much easier.
perldoc CGI
to be enlightened, grasshopper.
hth
tony
--
Tony Curtis, Systems Manager, VCPC, | Tel +43 1 310 93 96 - 12; Fax - 13
Liechtensteinstrasse 22, A-1090 Wien, AT | http://www.vcpc.univie.ac.at/
"You see? You see? Your stupid minds! Stupid! Stupid!" ~ Eros, Plan9 fOS.
------------------------------
Date: Thu, 02 Jul 1998 20:25:53 GMT
From: tallguy999@hotmail.com (Eric)
Subject: Re: Uploading perl scripts with a perl script.
Message-Id: <6ngqbv$bh8$1@news-1.news.gte.net>
On Sat, 27 Jun 1998 17:53:46 GMT, ttwallace@my-dejanews.com wrote:
>You probably have hidden characters in your .cgi perl script.
>You will not see them in windows or dos editors (like notepad).
>I had to look on a UNIX editor to see them when I got this error.
>Most likely it is the carriage return (control M which looks like
>^M or C/R). This is a very pesky problem. My ISP sytem admin
>removed them for me, but I think a clever perl script could to it.
I use a freeware win95 text editor called NoteTab Pro. It will save
files as "unix" format. =)
>
>In article <6mej6e$ioo$1@nnrp1.dejanews.com>,
> rpearce@my-dejanews.com wrote:
>>
>> Ok, I've done a search of dejanews to find an answer, but didn't get anything
>> clear enough.
>>
>> Senario: Need to upload a perl script to my ISP's server from work. Work is
>> behind a firewall and I can't use ftp/wsftp (tried several firewall settings,
>> but none work)
>>
>> Tried uploading the scripts with a file upload script and a simple create file
>> script from a textarea form.
>>
>> The upload and/or create works, but when I try to run the script I get an
>> error message:
>>
>> CGIwrap Error: System Error: execv() failed
>>
>> Error: No such file or directory (2)
>>
>> I believe the second line is referring to the shebang line in the script. It
>> can't find perl because of (possibly?) an added \r ?maybe?
>>
>> I've tried writing a script to strip out \r's after it's been uploaded, but
>> still get the same results.
>>
>> Any pointers or suggestions in the right direction would be appreciated.
>>
>> Thanks,
>>
>> Rick...
>>
>> -----== Posted via Deja News, The Leader in Internet Discussion ==-----
>> http://www.dejanews.com/ Now offering spam-free web-based newsreading
>>
>
>
>-----== Posted via Deja News, The Leader in Internet Discussion ==-----
>http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum
------------------------------
Date: Thu, 2 Jul 1998 20:03:06 GMT
From: ced@bcstec.ca.boeing.com (Charles DeRykus)
Subject: Re: Using goto & with SUPER::
Message-Id: <EvHH16.8nB@news.boeing.com>
In article <6nee94$hb3@netline.jpl.nasa.gov>,
Peter Scott <psh@euclid.jpl.nasa.gov> wrote:
>I have a tied hash whose object I want to create from an inherited
>constructor, viz and e.g.:
>----------------
>package Bar;
>
>sub new {
> print "new, args = @_\n";
> return bless { @_[1..$#_] }, shift;
>}
>
>package Foo;
>
>@ISA = qw(Bar);
>
>sub TIEHASH {
> my $class = $_[0];
> print "Tie, args = @_\n";
> goto &$class->SUPER::new; # ***
>}
>
>package main;
>
>tie %h, Foo, dog => 'bark', cat => 'meow';
>$obj = tied %h;
>----------------
>
>Using the "highly magical" goto & on the *** line seemed logical,
>but I can't get it to work; the output is:
>
>Tie, args = dog bark cat meow
>Undefined subroutine &Foo::Foo called at /tmp/foo line 17.
>
>I can get what I want (absent the magical stack frame effect of the goto &,
>no big deal) by changing that line to
>
> $class->SUPER::new(@_);
>
>provided I also shift the class out of @_ two lines earlier since the
>method call puts it back.
>
>But I'm just curious why I got the result I did and whether there's a way
>to use goto & in that situation.
>
>ObRTFM: I read perlobj, perlbot (inheritable constructors), perltoot,
>and perlfunc (goto &) first.
>
>This was Perl 5.004_04 on Solaris 2.5.1.
>
Are you sure you can insert a method call for the goto sub
NAME ? I'm getting a headache thinking about precedence
issues :)
Here's how the goto could work with a closure though:
$mref = sub { $class->SUPER::new(@_) };
goto &$mref;
HTH,
--
Charles DeRykus
------------------------------
Date: 2 Jul 1998 20:40:48 -0400
From: mjd@op.net (Mark-Jason Dominus)
Subject: Re: Using the read function...?
Message-Id: <6nh9ag$cq8$1@monet.op.net>
In article <eqOZCaRp9GA.75@upnetnews03>,
Ric Alcazar <alcazar@netcomp.net> wrote:
>If I wanted to read lines 2 and 4 from a text file similiar to one below...
You don't use the `read' function for that. You do it one of these ways:
while (<>) {
if ($. == 2) {
# something appropriate for line 2
} elsif ($. == 4) {
# something appropriate for line 4
}
}
Or you can use this:
@line = <>;
# do something with $line[1];
# do something else with $line[3];
(The first line is in $line[0], so the second line is in $line[1].
The <> operator means to read lines from the input.
>does whitespace after text on a line significant?
Yes.
You really need to get a book about Perl and read the book.
------------------------------
Date: Fri, 03 Jul 1998 08:51:04 GMT
From: xavier.grosjean@thepentagon.com
Subject: Variable interpolation in a string
Message-Id: <6ni61n$ip1$1@nnrp1.dejanews.com>
Hi !
I'm new with perl and I have a question that surely won't be much
trouble for some of you to answer.
I read lines from a text file. For example one line is:
Nom : $NOM
In my program, I have a variable named $NOM.
Now, I would like to print the line read in the file, but with the
actual value of the variable $NOM !
(I did try 'print $line'... unsuccessfully...)
How to do that ?
Thanks a lot for your answer if you do not make fun of me :-)
and thanks a little if you do make fun of me.
Xavier.
-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum
------------------------------
Date: Fri, 3 Jul 1998 09:11:59 -0500
From: tadmc@flash.net (Tad McClellan)
Subject: Re: Variable interpolation in a string
Message-Id: <froin6.al9.ln@localhost>
xavier.grosjean@thepentagon.com wrote:
: I'm new with perl and I have a question that surely won't be much
: trouble for some of you to answer.
After reading this far, most of the experienced folks here are
reasonably sure that you will proceed to ask a Frequently
Asked Question...
: I read lines from a text file. For example one line is:
: Nom : $NOM
: In my program, I have a variable named $NOM.
: Now, I would like to print the line read in the file, but with the
: actual value of the variable $NOM !
Yep. There is the FAQ.
You are expected to check to see if your question has been asked
and answered hundreds of times already before you post it yet
again.
You could have had the answer in about 10-15 *seconds* if you
had done:
perl -ne 'print if /^=.*variable/i' *.pod
(that is, search the "heading" lines in the documentation that
is installed along with the perl executable
)
(many folks here will get very annoyed when a simple word search
for a word in the Subject that you selected leads directly to
the answer. You will get less help if you annoy lots of folks...
)
: (I did try 'print $line'... unsuccessfully...)
: How to do that ?
You see your FAQ in perlfaq4:
"How can I expand variables in text strings?"
: Thanks a lot for your answer if you do not make fun of me :-)
: and thanks a little if you do make fun of me.
Thanks a little for adding another data point to support the
assertion that the Questions Asked in the FAQ are Frequent ;-)
--
Tad McClellan SGML Consulting
tadmc@metronet.com Perl programming
Fort Worth, Texas
------------------------------
Date: Fri, 3 Jul 1998 07:24:05 -0700
From: lr@hpl.hp.com (Larry Rosler)
Subject: Re: Variable interpolation in a string
Message-Id: <MPG.10068964c18d030a989710@nntp.hpl.hp.com>
In article <6ni61n$ip1$1@nnrp1.dejanews.com> on Fri, 03 Jul 1998 08:51:04
GMT, xavier.grosjean@thepentagon.com <xavier.grosjean@thepentagon.com>
says...
...
> Now, I would like to print the line read in the file, but with the
> actual value of the variable $NOM !
...
Look at perlfaq4: "How can I expand variables in text strings?"
--
Larry Rosler
Hewlett-Packard Laboratories
http://www.hpl.hp.com/personal/Larry_Rosler/
lr@hpl.hp.com
------------------------------
Date: Thu, 2 Jul 1998 09:52:35 -0400
From: kpreid@ibm.net (Kevin Reid)
Subject: Re: Virtual functions.
Message-Id: <1dbi2iz.1yecwrd1g2sjgaN@slip-32-100-246-61.ny.us.ibm.net>
Igor Krivokon <igor.k@usa.net> wrote:
> John Porter wrote in message <359A7FB6.7072@min.net>...
> >Oleg Beregovich wrote:
> >>
> >> Can I have pure virtual functions implemented in package.
> >> I want to overload it in derived packages (I will have this function
> >> overloaded in more than one package). If its possible could somebody
> >> write few lines as an example.
> >
> >Well, you can't have "pure virtual" methods in the C++ sense, where
> >they *must* be overridden by the derived class or else kablooi.
> >But you can get the same effect by writing it that way:
> >
> >class Parent;
> >
> >sub good_looks {
> > my $self = shift;
> > die "Error: called $self->good_look( @_ ), not overridden!";
> >}
> ...
>
> Probably, it helps; but that's not the same effect.
> Using C++ pure virtual functions, you get an error message
> 1) when you try to instantiate your class (not when you call the function)
Then put the error in the new() class method.
> 2) in compile time
Since Perl method calls are resolved at run time, there isn't much you
can do about this.
--
Kevin Reid. | Macintosh.
"I'm me." | Think different.
------------------------------
Date: Thu, 02 Jul 1998 15:02:47 GMT
From: John Porter <jdporter@min.net>
Subject: Re: Virtual functions.
Message-Id: <359BA2D7.6A0C@min.net>
Igor Krivokon wrote:
>
> Using C++ pure virtual functions, you get an error message
> 1) when you try to instantiate your class (not when you call the function)
> 2) in compile time
Hey, C++ isn't Perl. C++ isn't even Smalltalk.
There's power in late binding.
You can have the exception thrown when you instantiate the object;
but compiling is the time for building the syntax tree.
If you really want to catch that kind of error as early as possible,
then maybe you can arrange to have your objects instantiated in
BEGIN blocks.
--
John Porter
------------------------------
Date: Thu, 2 Jul 1998 16:47:43 -0700
From: "Igor Krivokon" <igor.k@usa.net>
Subject: Re: Virtual functions.
Message-Id: <6nh690$8qj$1@news.ncal.verio.com>
John Porter wrote in message <359BA2D7.6A0C@min.net>...
>Igor Krivokon wrote:
>>
>> Using C++ pure virtual functions, you get an error message
>> 1) when you try to instantiate your class (not when you call the
function)
>> 2) in compile time
>
>Hey, C++ isn't Perl. C++ isn't even Smalltalk.
>There's power in late binding.
Sure, there's power in late binding.
Say, In Java you have both kinds of binding; trying to instantiate abstract
classes (i.e. classes with non-zero number of abstract functions),
you have errors either in compile- or run-time.
>You can have the exception thrown when you instantiate the object;
>but compiling is the time for building the syntax tree.
>If you really want to catch that kind of error as early as possible,
>then maybe you can arrange to have your objects instantiated in
>BEGIN blocks.
That's too tricky, IMHO.
I don't really think Perl needs pure virtual functions in C++ sense -
Perl's OO has it's own approach.
Igor Krivokon
<igor.k@usa.net>
------------------------------
Date: Thu, 2 Jul 1998 16:49:34 -0700
From: "Igor Krivokon" <igor.k@usa.net>
Subject: Re: Virtual functions.
Message-Id: <6nh6cf$8rp$1@news.ncal.verio.com>
Kevin Reid wrote in message
<1dbi2iz.1yecwrd1g2sjgaN@slip-32-100-246-61.ny.us.ibm.net>...
>> Probably, it helps; but that's not the same effect.
>> Using C++ pure virtual functions, you get an error message
>> 1) when you try to instantiate your class (not when you call the
function)
>
>Then put the error in the new() class method.
Bad idea.
You get an error for any derived class, unless it implements
it's own new() method.
That's not what abstract classes for.
>
>> 2) in compile time
>
>Since Perl method calls are resolved at run time, there isn't much you
>can do about this.
Theoretically, one can use BEGIN blocks, but I don't see any good solution.
Igor Krivokon
<igor.k@usa.net>
------------------------------
Date: 3 Jul 1998 09:06:54 -0400
From: mjd@op.net (Mark-Jason Dominus)
Subject: Re: Virtual functions.
Message-Id: <6nil1e$fiv$1@monet.op.net>
In article <6nh6cf$8rp$1@news.ncal.verio.com>,
Igor Krivokon <igor.k@usa.net> wrote:
>Kevin Reid wrote in message
>>Then put the error in the new() class method.
>
>Bad idea.
>You get an error for any derived class, unless it implements
>it's own new() method.
What if you put the following code into the constructor for the base class?
@VIRTUAL = qw(size length color);
sub new {
my $class = shift;
_check_virtual_functions();
...
}
sub _check_virtual_functions {
my @UNDEFINED;
foreach $vf (@VIRTUAL) {
unless (defined &{$class . "::$vf"}) {
push @UNDEFINED, $vf;
}
}
if (@UNDEFINED) {
croak "Class $class does not define virtual function(s) @VIRTUAL";
}
}
------------------------------
Date: 3 Jul 1998 14:46:11 GMT
From: Zenin <zenin@bawdycaste.org>
Subject: Re: Virtual functions.
Message-Id: <899477722.650052@thrush.omix.com>
Mark-Jason Dominus <mjd@op.net> wrote:
: What if you put the following code into the constructor for the base class?
: @VIRTUAL = qw(size length color);
: sub new {
: my $class = shift;
: _check_virtual_functions();
You didn't pass $class btw, so _check_virtual_functions() won't
ever see it (it's not global, it's lexical).
: sub _check_virtual_functions {
: my @UNDEFINED;
: foreach $vf (@VIRTUAL) {
: unless (defined &{$class . "::$vf"}) {
What about inheritance? Luckly, this has already been considered.
Check out the can() method of the UNIVERSAL class. Even then
however, you've got the problem of autoloading which may mean that
the methods are validly overridden, but can't be checked without
calling them. This is the same reason perl can not check prototypes
of methods nore can strict check for method name typos.
--
-Zenin
zenin@archive.rhps.org
------------------------------
Date: Thu, 02 Jul 1998 17:21:57 GMT
From: Amiche@my-dejanews.com
Subject: webmaster/developer
Message-Id: <6ngfjl$98l$1@nnrp1.dejanews.com>
Major Software Developer/Systems Integrator located in Dayton ,Ohio is in
need of a software/web developer to support a major client server system for
a USAF contract. The project involves developing/converting a large inventory
management system that uses Flying hour data to forcast demand. It is a very
large system and is using the most current development tools. (VB,Active-X,
SQL/Server,MS web server,Interdev,MS-IIS,Oracle etc. The individuals role
will not be in content publishing, but rather supporting other subcontractors
that are content publishers as well as serving as webmaster/technical
management and supporting internet database applications (SQL Server), so
they need to have a strong backgound in programming,embedded SQL,internet
servers and at least one of the following Java-script, Active-X,VB-script,
MS-IIS web development tools. It is an excellent opportunity to learn, grow
and develop a web based Front end. Please contact: Blake Harper TASC 2555
University Blvd Fairborn, Ohio 45324 T-937-426-1040 ex 286 Fax- 937-426-2932
E-Mail dbharper@tasc.com
-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum
------------------------------
Date: 02 Jul 1998 13:37:21 +0100
From: Tommy Kelly <tommyk@mekb2.sps.mot.com>
Subject: Re: What a Crappy World
Message-Id: <w30lnqcsa2m.fsf@tiree2.sps.mot.com>
Page xv of camel 2nd edition (one of those places
that annoying "newbies" may go?) says of clpm
"... no question is too silly to ask"
Of course, it qualifies it with:
"... some questions are too silly to answer, especially those
already answered in the FAQ"
But there's a big difference between getting no answer, and
getting five flames.
To merge some analogies, clpm looks - to this newbie anyway -
like a toilet booth, in the middle of Yosemite, on Labor day
(or Glencoe tourist car park if you will) on which a large
neon sign has been placed saying:
"SILLY QUESTIONS AND TOILETS - ASK HERE"
Please take down the sign (in Camel at least) if it's causing
so much trouble.
t
Oh, I almost forgot ...
:-)
------------------------------
Date: Thu, 02 Jul 1998 14:48:36 GMT
From: trosine@math.uwsuper.edu (Tim Rosine)
Subject: Re: while (<CSV_FILE>) doesn't work with NT
Message-Id: <359b9c8f.169483671@news.wwa.com>
On 2 Jul 1998 02:55:18 GMT, insider@comet.connix.com (Stephen L.
Vinson) wrote:
>I have just learned of the $! variable. It reports "No such file or
>directory". Now I have to find out why...
>
>Thanks for your help.
>
>Steve
>
>Bob Trieger (sowmaster@juicepigs.com) wrote:
>: [ posted and mailed ]
>
>: insider@comet.connix.com (Stephen L. Vinson) wrote:
>: -> I'm new to Perl, but have successfully written a Perl 5 script that reads
>: -> a CSV file and queries its contents. The script works fine on a
>: -> Unix-based server, but fails to do the same thing on an NT-based server
>: -> (called "Site Stack" if this helps). Here's the pertinent code. Assume I
>: -> log in as IADM_STEVE, so my base directory is "/~steve":
>: ->
>: -> $basedir = "/~steve";
[code snipped]
>: You should always check the results of your open. That is probably where your
>: problem lays.
I'm not sure how to work around this, but I'm pretty sure it's because
perl can't understand that "/~steve" is actually "/Users/steve" or
whatever that path actually maps to.
Perhaps you can try (temporarily):
$basedir =~ s/~/Users\//
HTH
Tim Rosine
trosine@math.uwsuper.edu
------------------------------
Date: Thu, 02 Jul 1998 20:10:32 GMT
From: scythale@my-dejanews.com
Subject: Re: while (<CSV_FILE>) doesn't work with NT
Message-Id: <6ngpfn$ncj$1@nnrp1.dejanews.com>
In article <359b9c8f.169483671@news.wwa.com>,
trosine@math.uwsuper.edu (Tim Rosine) wrote:
> >: -> log in as IADM_STEVE, so my base directory is "/~steve":
> >: ->
> >: -> $basedir = "/~steve";
>
> [code snipped]
>
> >: You should always check the results of your open. That is probably where
your
> >: problem lays.
>
> I'm not sure how to work around this, but I'm pretty sure it's because
> perl can't understand that "/~steve" is actually "/Users/steve" or
> whatever that path actually maps to.
I confirm that under NT there's no ~user, so you have to specify the full path
to your home.
I've worked a lot with CSV files to say it ...
Warning: if you are on an UNC share, opendir won't work, but if on this share
you create a subdirectory, it works ! Undocumented everywhere !
look at http://www.esiea.fr/public_html/Emmanuel.PIERRE/perl/ntperl.html as
soon as I translate it !
-= Emmanuel PIERRE epierre@mail.esiea.fr =-
http://www.esiea.fr/public_html/Emmanuel.PIERRE http://www.esiea.fr
http://www.e-presence.esiea.fr http://www.apr-job.com
L I N U X - WebMaster - SysAdm - Perl Guru
http://www.esiea.fr:8080 Intranet Inter ESIEA http://hp1.esiea.fr:2001
http://dvorak.esiea-ouest.fr:2001
-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum
------------------------------
Date: Fri, 03 Jul 1998 01:42:44 +0200
From: "Michael W. Lancaster" <conservative-party@iname.com>
Subject: WHILE loop - String Increment
Message-Id: <359C1AF4.589C6F11@iname.com>
Dear Sirs,
I am a self-taught novice at PERL and have got a question. It pertains
to the ensuing code--
# BEGIN
$Defined = 0;
$Counter = "Occupation";
while($Counter <= "Specialised_Campaigning") {
if(($FORM{$Counter} eq "Yes.") || ($FORM{$Counter})) {
$Defined = 1;
}
} continue {
$Counter++;
}
# END
Are these a legitimate loop and $Counter increment? What it is supposed
to do is:--
(1) Initialise a quazi-Boolean variable to false;
(2) Set the counter to a string somewhere around the half of the array
containing the names of form fields and their values.
(3) Establish a 'while' loop to traverse the names of those fields from
the instigating one till the one labelled 'Specialised_Campaigning'
inclusive;
(4) Perform a check (that part is certified to be correct) of the
current field in the loop;
(5) Increase the loop value to the subsequent subscript of the array
aforesaid.
Does this make any sense at all and where could the provisional error
be? It forms part of a CGI/PERL script that is still in its nascent
stages so it hasn't been tested yet.
Michael W. Lancaster.
------------------------------
Date: 3 Jul 1998 05:28:58 GMT
From: cberry@cinenet.net (Craig Berry)
Subject: Re: WHILE loop - String Increment
Message-Id: <6nhq6q$ju8$2@marina.cinenet.net>
Michael W. Lancaster (conservative-party@iname.com) wrote:
: Dear Sirs,
We have some Madames here, as well. :)
: I am a self-taught novice at PERL and have got a question. It pertains
: to the ensuing code--
:
: # BEGIN
: $Defined = 0;
: $Counter = "Occupation";
: while($Counter <= "Specialised_Campaigning") {
<= is a numeric comparison. You want le, the string-compare equivalent.
: if(($FORM{$Counter} eq "Yes.") || ($FORM{$Counter})) {
The second part of the || tests if $FORM{$Counter} is defined and has a
non-zero, non-empty-string value. Testing if it equals "Yes." is
superfluous, as the second part is a superset of this test.
: $Defined = 1;
: }
: } continue {
: $Counter++;
Incrementing a string is almost certainly not what you want to be doing:
$Counter = "Occupation";
$Counter++;
print $Counter;
prints: Occupatioo
Note how the trailing 'n' has turned to 'o'. This is how strings
increment. Doesn't seem to fit your program.
: Are these a legitimate loop and $Counter increment? What it is supposed
: to do is:--
: (1) Initialise a quazi-Boolean variable to false;
: (2) Set the counter to a string somewhere around the half of the array
: containing the names of form fields and their values.
Then you'll need an array of those names, if ordering is important. I'm
not sure I understand the rest of your spec, but perhaps this is enough to
get you on the right track. Good luck!
---------------------------------------------------------------------
| Craig Berry - cberry@cinenet.net
--*-- Home Page: http://www.cinenet.net/users/cberry/home.html
| Member of The HTML Writers Guild: http://www.hwg.org/
"Every man and every woman is a star."
------------------------------
Date: Fri, 03 Jul 1998 16:33:23 +0200
From: "Michael W. Lancaster" <conservative-party@iname.com>
Subject: Re: WHILE loop - String Increment
Message-Id: <359CEBB3.F607E584@iname.com>
> Then you'll need an array of those names, if ordering is important.
> I'm not sure I understand the rest of your spec, but perhaps this
> is enough to get you on the right track. Good luck!
Thank you for your time, Craig. I have actually succeeded in
circumventing the entire loop simply by checking its size.
Michael W. Lancaster.
--
Conservative Party - Michael W. Lancaster
http://www.serve.com/lordgovernor/
http://www.tory.org.uk/
------------------------------
Date: 2 Jul 1998 21:06:10 GMT
From: kortbein@iastate.edu (Josh Kortbein)
Subject: Why is the autodecrement not magical?
Message-Id: <6ngso2$q72$3@news.iastate.edu>
[See subject.]
Josh
--
________________________________________________________________________
Interviewer: "So Frank, you have long hair. Does that make you a woman?"
Frank Zappa: "You have a wooden leg. Does that make you a table?"
------------------------------
Date: Fri, 3 Jul 1998 11:22:31 +0000
From: domo@tcp.ip.lu (Dominic Dunlop)
Subject: Re: Why is the autodecrement not magical?
Message-Id: <1dbl4dv.5jou3q1bl46tcN@ppp91.vo.lu>
Josh Kortbein <kortbein@iastate.edu> wrote:
> [See subject.]
C'est comme ga, as they say in France, using the character set of their
choice. [That's the way it is.]
If you have a great and frequent need of magical autodecrement, consider
overloading the pre- and post-decrement operators (--) so that they do
what you want.
If your need is occasional, something based on
#!perl
%lookup = reverse("a".."z", undef, "a".."z", undef);
for("a".."z"){print "$_: $lookup{$_}\n"}
__END__
should do the trick.
---
Dominic Dunlop
------------------------------
Date: 2 Jul 1998 11:37:22 GMT
From: gossamer@tertius.net.au (Gossamer)
Subject: Why no Perl news/mailreader?
Message-Id: <slrn6pms3l.7tl.gossamer@penguin.glasswings.com.au>
A geek-friend and I were conversing tonight (yes, face to face!) and
discovered we'd both recently been looking at the Slrn and Mutt source
code and thought, "This would be SO much easier in Perl".
- There's a bunch of relavent modules (Curses, Mail::Folder,
Net::NNTP, News::*, etc.) that would mean the actual application
code would be relatively short.
- They're both basically Text-manipulation- and Socket-based apps,
things Perl is best at.
- You could write them so things like Scoring were their own modules -
bingo, if you don't like how it's done, write your own!
- And of course, we get to skip the endless debates about what language
to use for macros and hooks :)
And because they're applications you tend to start and leave running,
everybody's "Perl is an interpreted language and therefore slow"
argument can be dropped on the floor.
I'm tempted ... very tempted ...
Gossamer
--
: Gossamer - gossamer@tertius.net.au - http://www.tertius.net.au/~gossamer/
: Adding manpower to a late software project makes it later.
: -- Brook's Law
------------------------------
Date: 2 Jul 1998 19:56:14 GMT
From: gebis@albrecht.ecn.purdue.edu (Michael J Gebis)
Subject: Re: Why no Perl news/mailreader?
Message-Id: <6ngoku$l6n@mozo.cc.purdue.edu>
gossamer@tertius.net.au (Gossamer) writes:
}A geek-friend and I were conversing tonight (yes, face to face!) and
}discovered we'd both recently been looking at the Slrn and Mutt source
}code and thought, "This would be SO much easier in Perl".
}And because they're applications you tend to start and leave running,
}everybody's "Perl is an interpreted language and therefore slow"
}argument can be dropped on the floor.
I don't know how many times I've wished that exmh was written in perl,
not tcl.
--
Mike Gebis gebis@ecn.purdue.edu mgebis@eternal.net
------------------------------
Date: Fri, 03 Jul 1998 12:23:23 GMT
From: charlie@antipope.org (Charlie Stross)
Subject: Re: Why no Perl news/mailreader?
Message-Id: <slrn6ppjd1.leb.charlie@cs.ed.datacash.com>
In the name of Kibo the Compassionate, the Merciful,
on 2 Jul 1998 11:37:22 GMT,Gossamer
the supplicant <gossamer@tertius.net.au> implored:
>A geek-friend and I were conversing tonight (yes, face to face!) and
>discovered we'd both recently been looking at the Slrn and Mutt source
>code and thought, "This would be SO much easier in Perl".
:
[ snip ]
:
>I'm tempted ... very tempted ...
Have you considered starting a project to build one?
I'd envisage doing it in three layers:
Bottom layer: the existing Net::NNTP, Net::SMTP and other existing
modules. Also possibly other modules to handle local storage of
mail/news as opposed to remote server-based storage.
Middle layer: a set of objects that provide high-level interfaces
to the low-level modules: for example, objects to handle a tree of
article headers, objects to handle killfiles, objects to search
a set of mailboxes, and so on.
Top layer: user interfaces for Curses, Tk, and either Qt/KDE or GTK.
(Possibly the perlvision module would be a good starting point --
free for noncommercial use, with very easy to use curses-based windowing;
this would let you get a basic working front end off the ground rapidly.)
You'll want a website and list server for coordination purposes. (If
you want to start such a project and need those facilities, drop me an
email.) You'll also need volunteers. And, to start with, a firm idea
of what you want to build ...
-- Charlie (interested)
------------------------------
Date: Fri, 03 Jul 1998 01:18:36 GMT
From: missoula_y2k@my-dejanews.com
Subject: Year 2000 Questions Forum Group Forum
Message-Id: <6nhbhc$f0q$1@nnrp1.dejanews.com>
Hello :)
Missoula Y2K Users Group <members.spree.com/missoula_y2k> has a Forum located
at: http://forums.delphi.com/preview/main.asp?sigdir=Year_2000/
Please forward this anouncement.
Thanks.
-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum
------------------------------
Date: Fri, 03 Jul 1998 01:29:03 GMT
From: sowmaster@juicepigs.com (Bob Trieger)
Subject: Re: Year 2000 Questions Forum Group Forum
Message-Id: <6nhc8r$bed$1@strato.ultra.net>
missoula_y2k@my-dejanews.com wrote:
-> Hello :)
>>> spam discarded <<<
If it's Thursday, this must be SPAM day.
Bob Trieger
sowmaster@juicepigs.com
" Cost a spammer some cash: Call 1-800-286-0591
and let the jerk that answers know that his
toll free number was sent as spam. "
------------------------------
Date: 8 Mar 97 21:33:47 GMT (Last modified)
From: Perl-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 8 Mar 97)
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.
To submit articles to comp.lang.perl.misc (and this Digest), send your
article to perl-users@ruby.oce.orst.edu.
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.
The Meta-FAQ, an article containing information about the FAQ, is
available by requesting "send perl-users meta-faq". The real FAQ, as it
appeared last in the newsgroup, can be retrieved with the request "send
perl-users FAQ". Due to their sizes, neither the Meta-FAQ nor the FAQ
are included in the digest.
The "mini-FAQ", which is an updated version of the Meta-FAQ, is
available by requesting "send perl-users mini-faq". It appears twice
weekly in the group, but is not distributed in the digest.
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 V8 Issue 3054
**************************************