[18125] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 285 Volume: 10

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Wed Feb 14 00:05:53 2001

Date: Tue, 13 Feb 2001 21:05:10 -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: <982127109-v10-i285@ruby.oce.orst.edu>
Content-Type: text

Perl-Users Digest           Tue, 13 Feb 2001     Volume: 10 Number: 285

Today's topics:
    Re: "Any" with Arrays <mischief@velma.motion.net>
        -f file is always false! <lanaS55nospam@hotmail.com>
    Re: -f file is always false! <tony_curtis32@yahoo.com>
    Re: -f file is always false! <lanaS55nospam@hotmail.com>
        Array question <jdb@ga.prestige.net>
    Re: Array question <Jonathan.L.Ericson@jpl.nasa.gov>
    Re: Array question <conraduno@binxdsign.com>
    Re: Changes to the second field of /etc/passwd   ( Plea (Ben Okopnik)
        Excel won't launch <vigne@nhamp.net>
    Re: Excel won't launch <jdb@ga.prestige.net>
    Re: Excel won't launch <kstep@pepsdesign.com>
    Re: FAQ 4.24:   How do I reformat a paragraph? <mischief@velma.motion.net>
    Re: FAQ 4.24:   How do I reformat a paragraph? <flavell@mail.cern.ch>
    Re: FAQ 4.24:   How do I reformat a paragraph? <mischief@velma.motion.net>
    Re: ftp permission denied, but perl works fine (David Efflandt)
    Re: Hashes of Arrays <lxq79@REMOVE.CAPITALS.hotmail.com>
    Re: How do I translate a Cobol WORKING-STORAGE SECTION  <jck1@seed.net.tw>
    Re: How to redirect output within Perl script? <mischief@velma.motion.net>
    Re: Need help with an array (Richard J. Rauenzahn)
    Re: Newbie Perl / CGI Question (David Efflandt)
    Re: perl output to pop-up window <mischief@velma.motion.net>
    Re: printing IEEE float or double as hex <kstep@pepsdesign.com>
    Re: Simple GUI question  (TK) <bowman@montana.com>
    Re: Syntax quickie: How do I get the index of an arrayr <mjcarman@home.com>
        Digest Administrivia (Last modified: 16 Sep 99) (Perl-Users-Digest Admin)

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

Date: Wed, 14 Feb 2001 02:00:51 -0000
From: Chris Stith <mischief@velma.motion.net>
Subject: Re: "Any" with Arrays
Message-Id: <t8jpmj29faijb9@corp.supernews.com>

Kurt Stephens <kstep@pepsdesign.com> wrote:
> "PaAnWa" <paul_wasilkoff@ucg.org> wrote in message
> news:t8j0fqk1cqp39f@corp.supernews.com...
>> I am working on a form-processing script.  In particular I am looking at a
>> way of more efficiently evaluating the country field value.  For example,
> if
>> the country field equals Fiji or New Zealand or Tonga an email is sent to
>> address1.  If the country field equals Canada an email is sent to address
> 2.
>> If the country field is equal to Austria or Belgium or Denmark or
>> Switzerland or France an email is sent to address3.  But if the country
>> field is equal to USA or all other countries then a datafile is appended.
>>
>> How do I simplify the arguments to a)detect if an email should be sent and
>> then b)to what address should the mail be sent.  Is there a way to do the
>> following:

> I would use a hash to associate the email address with the country.  If an
> address exists, send the mail.  If not, update the file.  Since there are
> more countries than email addresses in your case, perform a two-level lookup
> where country codes are associated with regions and regions are associated
> with addresses.

This is a good idea.

Too bad the W3C doesn't see fit to have OPTGROUP elements returned to the
server. It would make this sort of thing much easier. The OPTGROUP element
could help the OP in this situation anyway. It's a great thing to use when
you have similar data among OPTION elements. It may be eaiser for the user
to find their country in a group called Europe, North America, Asia, Pacific
Islands, Australia, Africa, or however more specific one might want to break
it down. I'm off topic here, but it's something to think about when designing
such an application.

One good way to handle the problem could be gleaned from the OPTGROUP section
(HTML 4.01 version, anyway) on http://www.wc.org which can be found more
specifically at http://www.w3.org/TR/html4/interact/forms.html#edef-OPTGROUP
as a matter of fact. They use a leading identifier on the value of the
OPTION tag. The OP could map this to the proper address if that was desired.
It could cut down on code. Granted, this ties the HTML and the Perl closer
together. That could increase maintenance effort. It could move some of the
maintenance from the programmer onto the webmaster if those aren't the same
person/people, though. I'll leave whether that's a good or a bad tradeoff as
a judgment for others to make.

If you did include some region hint in the OPTION information, but still have
a hash for the particular region, that makes a small hash for the Perl side
and only the requirement that the OPTION tags be formatted similar to
<OPTION label="Austria" value="europe_austria">Austria</OPTION>. This allows
you to regex out (or split() off) the region, and check against just a hash
of regions.

Assuming you already have your paramters from your form, and that the
result of the SELECT statement is stored in $country:

my %email_by_region = (
    'europe'    => 'europe@foo.net',
    's-america' => 'sa@bar.org',
    'pacific'   => 'p-islands@xyzzy.com',
);
(my $region, $country) = split(/_/, $country);
if( exists( $email_by_region{$region) ) ) {
    send_mail_to( $email_by_region{$region} ); ### left as exercise
} else {
    append_to_appropriate_data_file(); ### left as exercise
}

I know this is a little different direction, but it's better to have
more ideas than it is to have fewer. ;-)

Chris

-- 
Christopher E. Stith
The purpose of a language is not to help you learn the
language, but to help you learn other things by using the
language. --Larry Wall, The Culture of Perl, August 1997



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

Date: Wed, 14 Feb 2001 02:37:48 GMT
From: Alexandra <lanaS55nospam@hotmail.com>
Subject: -f file is always false!
Message-Id: <3A898A7A.D783024@hotmail.com>

I am iterating through a list of a directory and when I put:
if (-f $file){
  execute this code;
}
all my files test false even though they are files
why is this
for the mean time I'm using
if (! -d $file){
  execute some code;
}
It works, but I'm still curious why legit files don't return true for -f
$file.

Scott





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

Date: 13 Feb 2001 20:43:56 -0600
From: Tony Curtis <tony_curtis32@yahoo.com>
Subject: Re: -f file is always false!
Message-Id: <873ddi2dcj.fsf@limey.hpcc.uh.edu>

>> On Wed, 14 Feb 2001 02:37:48 GMT,
>> Alexandra <lanaS55nospam@hotmail.com> said:

> I am iterating through a list of a directory and when I
> put: if (-f $file){ execute this code; } all my files
> test false even though they are files why is this for
> the mean time I'm using if (! -d $file){ execute some
> code; } It works, but I'm still curious why legit files
> don't return true for -f $file.

you've done an readdir() on a directory *somewhere else*
in the filesystem?  readdir() returns the names of the
files in the directory, not the *path* to them.

You could do a chdir("/path/to/directory") first then
opendir on ".".  Then you're in the right place.

Or prepend the directory path to the names returned by
readdir() before doing anything with the file.

hth
t
-- 
The avalanche has already started.
It is too late for the pebbles to vote.


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

Date: Wed, 14 Feb 2001 04:12:19 GMT
From: Alexandra <lanaS55nospam@hotmail.com>
Subject: Re: -f file is always false!
Message-Id: <3A89A09A.649B2520@hotmail.com>



Tony Curtis wrote:

> you've done an readdir() on a directory *somewhere else*
> in the filesystem?  readdir() returns the names of the
> files in the directory, not the *path* to them.
>
> You could do a chdir("/path/to/directory") first then
> opendir on ".".  Then you're in the right place.

Thanks,  it works now.  I guess the -f thing checks to see if the name
given by
$file is in the current working directory eh?

Scott



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

Date: Tue, 13 Feb 2001 23:58:02 GMT
From: "Jeremia d." <jdb@ga.prestige.net>
Subject: Array question
Message-Id: <3A892E38.74B8A281@ga.prestige.net>


--------------894820F320CF93EB05A3CE28
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Ok i got it to where i can run the command to find all the suid files on the system

"$Files = system(`find / -perm +4000`);"

Now I want to store each file into an array "This is where I am stuck"

After that is complete I would like to take each file and run them with a file test operator

like   -e "$file[0]" or warn "File is non existent";

I think I can do this just getting the files into an array is my problem

--
A little experience often upsets a lot of theory.



--------------894820F320CF93EB05A3CE28
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>

<pre>Ok i got it to where i can run the command to find all the suid files on the system</pre>

<pre>"$Files = system(`find / -perm +4000`);"</pre>

<pre>Now I want to store each file into an array "This is where I am stuck"</pre>

<pre>After that is complete I would like to take each file and run them with a file test operator</pre>

<pre>like&nbsp;&nbsp; -e "$file[0]" or warn "File is non existent";</pre>

<pre>I think I can do this just getting the files into an array is my problem</pre>

<pre></pre>

<pre>--&nbsp;
A little experience often upsets a lot of theory.</pre>
&nbsp;</html>

--------------894820F320CF93EB05A3CE28--



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

Date: 14 Feb 2001 03:50:53 +0000
From: Jon Ericson <Jonathan.L.Ericson@jpl.nasa.gov>
Subject: Re: Array question
Message-Id: <86ae7papnm.fsf@jon_ericson.jpl.nasa.gov>

"Jeremia d." <jdb@ga.prestige.net> writes:

>Newsgroups: comp.lang.perl,alt.perl,comp.lang.perl,comp.lang.perl.misc

comp.lang.perl (included twice) doesn't exist.

> Ok i got it to where i can run the command to find all the suid
> files on the system
> 
> "$Files = system(`find / -perm +4000`);"

Umm... I don't think you copied this from working code.  (Hint, system
executes a command and returns its return code - backticks return
stdout of the command.)
 
> Now I want to store each file into an array "This is where I am stuck"

The answer is "context":

  my @files = qx{find / -perm +4000};

Read perlop/qx for details.

Have you seen the File::Find module (included in the core
distribution)?  

Jon


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

Date: Wed, 14 Feb 2001 05:04:06 GMT
From: "Ian Shaughnessy" <conraduno@binxdsign.com>
Subject: Re: Array question
Message-Id: <aloi6.419925$U46.12346294@news1.sttls1.wa.home.com>

This is a multi-part message in MIME format.

------=_NextPart_000_0036_01C09600.26CB54C0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

my $Files =3D `find / -perm +4000`;

my @FilesArray =3D split( /\n/, $Files );

That should work.  That could be obfuscated down to one line, but its =
more readable this way ;-)


| ian shaughnessy | conraduno@binxdsign.com
  "Jeremia d." <jdb@ga.prestige.net> wrote in message =
news:3A892E38.74B8A281@ga.prestige.net...
Ok i got it to where i can run the command to find all the suid files on =
the system
"$Files =3D system(`find / -perm +4000`);"
Now I want to store each file into an array "This is where I am stuck"
After that is complete I would like to take each file and run them with =
a file test operator
like   -e "$file[0]" or warn "File is non existent";
I think I can do this just getting the files into an array is my problem

--=20
A little experience often upsets a lot of theory.
   =20

------=_NextPart_000_0036_01C09600.26CB54C0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2920.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>my $Files =3D `find / -perm +4000`;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>my @FilesArray =3D split( /\n/, $Files =
);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>That should work.&nbsp; That could be obfuscated =
down to one=20
line, but its more readable this way ;-)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>| ian shaughnessy | <A=20
href=3D"mailto:conraduno@binxdsign.com">conraduno@binxdsign.com</A></FONT=
></DIV>
<BLOCKQUOTE=20
style=3D"BORDER-LEFT: #000000 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: =
0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">
  <DIV>"Jeremia d." &lt;<A=20
  href=3D"mailto:jdb@ga.prestige.net">jdb@ga.prestige.net</A>&gt; wrote =
in message=20
  <A=20
  =
href=3D"news:3A892E38.74B8A281@ga.prestige.net">news:3A892E38.74B8A281@ga=
 .prestige.net</A>...</DIV><PRE>Ok i got it to where i can run the =
command to find all the suid files on the system</PRE><PRE>"$Files =3D =
system(`find / -perm +4000`);"</PRE><PRE>Now I want to store each file =
into an array "This is where I am stuck"</PRE><PRE>After that is =
complete I would like to take each file and run them with a file test =
operator</PRE><PRE>like&nbsp;&nbsp; -e "$file[0]" or warn "File is non =
existent";</PRE><PRE>I think I can do this just getting the files into =
an array is my problem</PRE><PRE></PRE><PRE>--&nbsp;
A little experience often upsets a lot of theory.</PRE>&nbsp;=20
</BLOCKQUOTE></BODY></HTML>

------=_NextPart_000_0036_01C09600.26CB54C0--



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

Date: 13 Feb 2001 23:25:28 GMT
From: ben-fuzzybear@geocities.com (Ben Okopnik)
Subject: Re: Changes to the second field of /etc/passwd   ( Please HELP )
Message-Id: <slrn98jgsq.ntb.ben-fuzzybear@Odin.Thor>

The ancient archives of 13 Feb 2001 17:41:08 GMT showed
Ken Laird of comp.lang.perl.misc speaking thus:
>I would like to change the second field of /etc/passwd (from "x" to "y") .
>
>this command line works fine : 
>
>perl -e '@a=`cat /etc/passwd`;chomp @a;for (@a) {($field)=(split /:/)[1];
>$field=~s/x/y/g;print "$field\n"}'
>
>but prints only the second field with the changes.
>
>I would like to create a second file with the changes included .
>Moreover I wouldn't like to change any "x" outside the second field .
>
>Will be glad to hear of any solution .
>
>Cordially
>
>Ken Laird
>
>kenlaird@yahoo.com


Hm. This sounds strange enough to be a homework assignment... but I'll 
give it a shot anyway.

This will work:

perl -wpe 's/:x:/:y:/' /etc/passwd > new_passwd


Here's the more "paranoid" version (i.e., "What happens if I have a user
whose entire real name is "x"?)

perl -F: -wane '$F[1]="y"; $"=":"; print "@F"' /etc/passwd > new_passwd


See "perldoc perlrun" and "perldoc perldata" for more info.


Ben Okopnik
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
"We need a president who's fluent in at least one language."
 -- Buck Henry


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

Date: Tue, 13 Feb 2001 17:02:14 -0800
From: Stuart Vigne <vigne@nhamp.net>
Subject: Excel won't launch
Message-Id: <8817DD5FBEABFE22.004579BE58FA5A3F.574DF2F3B1A4F1B7@lp.airnews.net>

I'm having problems launching Excel from my perl script.  I'm
currently using:
exec ("notepad.exe FileName.csv");
which almost gets the job done.  Subsitituting excel.exe for notepad
doesn't work.

I'm working exlusively in Win2000, on my machine only.  There are no
end users to this tool.

Also, once I get the *.csv file launched in Excel, I'm anticipating
applying a cell format and sort for two different columns generated
from the csv.  Any suggestions for where to look on accomplishing that
task?

Thanks in advance.


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

Date: Wed, 14 Feb 2001 00:11:06 GMT
From: "Jeremia d." <jdb@ga.prestige.net>
Subject: Re: Excel won't launch
Message-Id: <3A893149.A27DFA39@ga.prestige.net>


--------------72E907290F228DE52BF7521C
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

try using qx// or system("blah.exe");

Stuart Vigne wrote:

> I'm having problems launching Excel from my perl script.  I'm
> currently using:
> exec ("notepad.exe FileName.csv");
> which almost gets the job done.  Subsitituting excel.exe for notepad
> doesn't work.
>
> I'm working exlusively in Win2000, on my machine only.  There are no
> end users to this tool.
>
> Also, once I get the *.csv file launched in Excel, I'm anticipating
> applying a cell format and sort for two different columns generated
> from the csv.  Any suggestions for where to look on accomplishing that
> task?
>
> Thanks in advance.

--
A little experience often upsets a lot of theory.



--------------72E907290F228DE52BF7521C
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
try using qx// or system("blah.exe");
<p>Stuart Vigne wrote:
<blockquote TYPE=CITE>I'm having problems launching Excel from my perl
script.&nbsp; I'm
<br>currently using:
<br>exec ("notepad.exe FileName.csv");
<br>which almost gets the job done.&nbsp; Subsitituting excel.exe for notepad
<br>doesn't work.
<p>I'm working exlusively in Win2000, on my machine only.&nbsp; There are
no
<br>end users to this tool.
<p>Also, once I get the *.csv file launched in Excel, I'm anticipating
<br>applying a cell format and sort for two different columns generated
<br>from the csv.&nbsp; Any suggestions for where to look on accomplishing
that
<br>task?
<p>Thanks in advance.</blockquote>

<pre>--&nbsp;
A little experience often upsets a lot of theory.</pre>
&nbsp;</html>

--------------72E907290F228DE52BF7521C--



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

Date: Tue, 13 Feb 2001 21:49:26 -0500
From: "Kurt Stephens" <kstep@pepsdesign.com>
Subject: Re: Excel won't launch
Message-Id: <96crnd$ajg$1@nntp9.atl.mindspring.net>

"Stuart Vigne" <vigne@nhamp.net> wrote in message
news:8817DD5FBEABFE22.004579BE58FA5A3F.574DF2F3B1A4F1B7@lp.airnews.net...
> I'm having problems launching Excel from my perl script.  I'm
> currently using:
> exec ("notepad.exe FileName.csv");
> which almost gets the job done.  Subsitituting excel.exe for notepad
> doesn't work.
>
> I'm working exlusively in Win2000, on my machine only.  There are no
> end users to this tool.
>
> Also, once I get the *.csv file launched in Excel, I'm anticipating
> applying a cell format and sort for two different columns generated
> from the csv.  Any suggestions for where to look on accomplishing that
> task?

If you were testing the result from excec you would know why Excel won't
launch.

exec("Excel.exe") or die "Can't launch Excel: $!";

Prints:
The name specified is not recognized as an
internal or external command, operable program or batch file.

Notepad works because Notepad.exe is in your windows folder, which is
specified in the PATH environment variable.

print "$ENV{PATH}\n";

On my system this prints:

C:\Program Files\TextPad 4;C:\Perl\bin\;C:\Expat\bin;D:\jdk1.3\bin;
D:\j2sdkee1.2.1\bin;C:\WINNT\system32;C:\WINNT;C:\MSSQL7\BINN;
C:\Program Files\Mts;C:\Python20\;c:\devstudio\sharedide\bin\ide;
c:\devstudio\sharedide\bin;c:\devstudio\vc\bin

Notice that C:\Program Files\Microsoft Office\Office is not listed here.To
find Excel.exe, you need to add it's location to your path or specify the
complete path in the exec command.

Of course, if you plan on using Perl to do anything other than launch the
program, you will need to use the Win32::OLE module.  If you are using
ActiveState Perl, it should already be on your system.  All of the
properties and methods for the Excel object hierarchy are the same as their
VB counterparts, but the Perl syntax takes some getting used to.  Read the
Win32::OLE docs for details.

BTW, if the code below page faults and hangs your system, blame Microsoft,
not Perl.

<< BEGIN CODE >>

use strict;
use warnings;

use Win32::OLE;
use Win32::OLE::Variant;

print "Starting Excel...\n";
my $xl = Win32::OLE->new('Excel.Application', 'Quit')
    or die "oops\n";

$xl->{Visible} = 1;
$xl->Workbooks->Add;

print "Adding data...\n";
$xl->Range("A1")->{Value} = Variant(VT_BSTR, "Answer:");
$xl->Range("B1")->{Value} = Variant(VT_R8, 42);

print "Done";

<< END CODE >>

HTH,

Kurt Stephens





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

Date: Wed, 14 Feb 2001 01:15:03 -0000
From: Chris Stith <mischief@velma.motion.net>
Subject: Re: FAQ 4.24:   How do I reformat a paragraph?
Message-Id: <t8jn0no7d00029@corp.supernews.com>

Alan J. Flavell <flavell@mail.cern.ch> wrote:
> On Tue, 13 Feb 2001, Chris Stith wrote:

>> > Isn't there a difference between justified text and flush-right
>> > text?  I thought justified text was adjusted (i.e., stretched) so
>> > the text was aligned on both sides, whereas flush-right text is
>> > only aligned along the right side (with no stretching).
>>
>> There's left justified, right justified, center justified (although
>> centering doesn't necessarily mean center justified),

> Well, it's often confusingly called that, but that's silly, because
> the action of "justifying" a line is the incorporation of additional
> space to make it a fixed length overall.

I'm explaining the common usage that causes the confusion. Prescriptionists
will tell you that "justify" means what you say it means. Descriptionists
will say it says what I said it means. poh-tay-toh! toh-may-toh! ;)

Webster agrees with you, BTW. The following excerpted from
http://www.webster.com :

    Main Entry:         jus·ti·fy
    Pronunciation:      'j&s-t&-"fI
    Function:           verb
    Inflected Form(s): -fied; -fy·ing

    3 a : to space (as lines of text) so that the lines come out even
          at the margin
      b : to make even by justifying  <justified margins>

Just thought I'd share that since we're talking language law.

> So left-aligned and right-aligned and centered lines are _not_
> "justified", and it's confusing to term them so.  Whereas "justified"
> lines are so-called because of the operation of justifying them, and
> that's normally done for the purpose of getting them aligned on both
> sides.

Personally, I usually hope that reason and common sense "justify" my
statements without a typographer's help. ;)

>> and then there's
>> what you're thinking of, which is fully justified.

> That's "justified".

> Take a look for example at the relevant terms in
> http://www.smartbiz.com/sbs/arts/eyn3.htm or
> http://www.gbltd.com/glossary.html

If you want to be a real language lawyer, use a dictionary of English
that is considered authoritative in the UK, the US, Australia, or
Canada. Cambridge, Webster, and Roget come to mind. Cambridge Dictionary
online, by the way, did not list "justify" as having anything to do with
text (in the American, International, or Learner's editions). I didn't
bother with Roget (and yes, I'm fully aware they are known more for
their thesaurus than their dictionary, but I like to think in triples
rather than tuples).

> all the best

Indeed. What's important is that we've cleared up a question for the OP,
and perhaps moved you to submit a documentation patch. ;)  I would, but
I'm rather more of a descriptive linguist than a prescriptive one.

Chris

-- 
Christopher E. Stith
For the pleasure of others, please adhere to the following
rules when visiting your park:
    No swimming.  No fishing.  No flying kites.  No frisbees.
    No audio equipment. Stay off grass.  No pets. No running.



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

Date: Wed, 14 Feb 2001 02:31:11 +0100
From: "Alan J. Flavell" <flavell@mail.cern.ch>
Subject: Re: FAQ 4.24:   How do I reformat a paragraph?
Message-Id: <Pine.LNX.4.30.0102140223460.11113-100000@lxplus003.cern.ch>

On Wed, 14 Feb 2001, Chris Stith wrote:

> > Take a look for example at the relevant terms in
> > http://www.smartbiz.com/sbs/arts/eyn3.htm or
> > http://www.gbltd.com/glossary.html
>
> If you want to be a real language lawyer, use a dictionary

Sorry, but when I'm looking for technical terms, I don't usually go to
a general dictionary as my first choice.  Though I have to admit that
here I was lazy and used Google to find some glossaries, and picked a
couple for illustration rather than for proof.  With respect, I did
say "look for example", I didn't say "here's watertight proof".

Or would you go to Webster's to find what a Perl hash was?  ;-)

all the best



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

Date: Wed, 14 Feb 2001 03:02:17 -0000
From: Chris Stith <mischief@velma.motion.net>
Subject: Re: FAQ 4.24:   How do I reformat a paragraph?
Message-Id: <t8jt9pjcip7740@corp.supernews.com>

Alan J. Flavell <flavell@mail.cern.ch> wrote:
> On Wed, 14 Feb 2001, Chris Stith wrote:

>> > Take a look for example at the relevant terms in
>> > http://www.smartbiz.com/sbs/arts/eyn3.htm or
>> > http://www.gbltd.com/glossary.html
>>
>> If you want to be a real language lawyer, use a dictionary

> Sorry, but when I'm looking for technical terms, I don't usually go to
> a general dictionary as my first choice.  Though I have to admit that
> here I was lazy and used Google to find some glossaries, and picked a
> couple for illustration rather than for proof.  With respect, I did
> say "look for example", I didn't say "here's watertight proof".

I didn't sense any disrespect, nor did I intend any in return. I enjoy
banter about language. BTW, I think "justify" is in common enough
(albeit my preferred 'incorrect') usage now that most word processors
and desktop publishing systems use it and they are so widespread in
business and the home. Perhaps the authors of the Perl FAQ _justify_
their use of "justify" this way. ;-)

> Or would you go to Webster's to find what a Perl hash was?  ;-)

No, I'd go to a Perl glossary. But I figure if you're looking for
a word in general use (or even technical term about print layout)
then a dictionary can't hurt, especially considering it is laid
out in print by a company that specializes in both defining words
and laying out the definitions for print. ;-)

Anyway, I still say poh-tay-toh, and I still say I like the less
correct definition because it's descriptive of common and commonly
understood usage.

Don't bogart the poh-tay-toh salad! ;-) (Here's to you Randal, and
whoever said they were getting those shirts made!)

Chris

-- 
Christopher E. Stith
Where there's a will, there's a lawyer.



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

Date: Wed, 14 Feb 2001 01:56:26 +0000 (UTC)
From: efflandt@xnet.com (David Efflandt)
Subject: Re: ftp permission denied, but perl works fine
Message-Id: <slrn98jpc6.ofo.efflandt@efflandt.xnet.com>

On 13 Feb 2001 18:52:43 GMT, jk1138 <jk1138> wrote:
>
>Here's the situation:
>
>I wrote a Perl script that dynamically creates directories and files. I
>often need to personally modify these files or upload manually-created
>files, and I want to do this through an FTP client. Once I run the script
>below, however, I get a "553 Permission Denied" error whenever I try to
>access (delete, overwrite, rename, chmod, etc.) the dynamically-generated
>directories and files through FTP.
>
>The relevant code is as follows:
>
>	if (-d $makethis) {
>		#Directory exists. Do Nothing
>	} else {
>		mkdir $makethis, "755" || die $!;
>	}
>
>	open(OUTFILE, "> $filename") || die $!;
>	print OUTFILE "$outText"; 
>	close(OUTFILE);

Your MODE in mkdir is invalid syntax.
For MODE example see:  perldoc -f chmod

>The code generates both the directories and files as expected (and chmods
>files and directories to 666 and 755, respectively). I have no problems
>modifying these files and directories through perl, but I need to be able
>to do that through FTP, as well.

Likely the same problem (is your chmod syntax correct?).
What does 'ls -l' in FTP show for ownership/permissions of dirs/files
vs. dirs you create or files you upload via FTP?

-- 
David Efflandt  efflandt@xnet.com  http://www.de-srv.com/
http://www.autox.chicago.il.us/  http://www.berniesfloral.net/
http://cgi-help.virtualave.net/  http://hammer.prohosting.com/~cgi-wiz/


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

Date: Wed, 14 Feb 2001 08:46:06 +0900
From: LXQ <lxq79@REMOVE.CAPITALS.hotmail.com>
Subject: Re: Hashes of Arrays
Message-Id: <20010214084606.5bfa9c20.lxq79@REMOVE.CAPITALS.hotmail.com>

On Tue, 13 Feb 2001 10:16:06 -0800
Todd Shoenfelt <tshoenfe@cisco.com> wrote:

> > while (@row = $sth->fetchrow_array()){
> 
> Every time you loop, @row <i>gets re-assigned</i> the values of the next
table
> row.  If you don't stick a 'my' in front of it, your problems will
persist.

Sorry, but I think that is what I want. Load new values of array to @row
on every loop, and then move the values in the @row to the
hash-of-hashes-of-arrays. The final data will be in the form like:
$user{$id}{job => [1, 2, 4]}

Isn't this the way to loop it? I tried to put my in front of @row, but
nothing changed. 




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

Date: Wed, 14 Feb 2001 10:44:26 +0800
From: "jck1" <jck1@seed.net.tw>
Subject: Re: How do I translate a Cobol WORKING-STORAGE SECTION into the format I wanted?
Message-Id: <96crrg$f1d@netnews.hinet.net>


Russ Jones <russ_jones@rac.ray.com> wrote in message >
Thanks for your noticing my question :)

Do you want your resulting output to still be COBOL? Because what
> you've shown here won't compile. You have a number of variables
> defined multiple times, and you still have your OCCURS clauses, which
> the compiler will still try to allocate storage for.  You'll have to
> either use FILLER or come up with some kind of naming convention. Do
> you need to code for OCCURS DEPENDING ON? How about OCCURS ZERO TO
> THREE TIMES DEPENDING ON? How about REDEFINES?
>
No,  I don't want to my output data to be COBOL.

> I'm curious what end result you're looking for. If it's compilable
> COBOL code, that's one problem, but if you're building a memory map or
> something like that, some COBOL compilers have options that will map
> working storage to memory locations. I know the IBM MVS one will,
> although it's been too many years for me to remember the specific
> options.
>
I use RM/COBOL, it also have option to illustrate the storage format,
but it can't use directily either.
I don't want to do the complex compiler question,  I can't either. :)
May be I have interesting to do that, but my skill level limit me.
Ok, let me say what's my mission.
 As we know,  the Cobol can create the data file, suppose the file name
"IAA.dat".
In the past, the hard disk is precious resource. Many COBOL program use the
COMP-3 or
COMP-1 to  compress the data length. It make the save the storage mission,
but we can't
use editor(vi or emac....) to see the IAA.dat directly. When we want to see
the compressed
data, we must write a programe with CONVERT statement. It 's not
convenient.So I have an
idea, if I can read the IAA.dat and decompress directly? In my system, ecah
*.dat file have a
*.FR file. So the IAA.dat file have a IAA.FR file. The *.FR file describe
the IAA.dat 's data
format. It looks like the below. If I can generate the output what I want,
then I can get the real
data position. So I can use perl function "substr" to get the real data what
I want.
For example, the IAA.FR 's 1th line is "03 IABC-F13                     PIC
9(07) COMP-3.",
After my analysis, I get the start position is 0, and the length is 4. So I
can get the data
with substr($_, 0, 4) easily. :)
=======================================================
01 IABC-R.
                03 IABC-F13                     PIC 9(07) COMP-3.
                03 IABC-F14 OCCURS 3 TIMES.
                        05 IABC-AKLFJDKAS       PIC X(01).
                        05 IABC-ZZZZZZZZ OCCURS 2 TIMES.
                                07 IABC-KKK     PIC 9(08) COMP-3.
                                07 IABC-ZZZ     PIC 9(01).
                03 FILLER                       PIC X(10).
=======================================================
> As a suggestion, if you want it to compile, maybe your output for the
> example you gave might look like this: (typed from memory, not cut and
> pasted, not compiled, but I'm pretty sure that it's valid code)
>
>       * asterisk in column 7 for a comment? I can't remember.
>        01  IABC-R.
>          03  IABC-F13 PIC 9(07).
>       *  03  IABC-F14 OCCURS 3 TIMES.
>          03  IABC-F14-1.
>            05  IABC-AKLFJDKAS PIC X(01).
>       *    05  IABC-ZZZZZZZZ OCCURS 2 TIMES.
>            05  IABC-ZZZZZZZZ-1.
>              07  IABC-KKK PIC 9(08).
>              07  IABC-ZZZ                       PIC 9(01).
>            05  IABC-ZZZZZZZZ-2.
>              07  IABC-KKK PIC 9(08).
>              07  IABC-ZZZ                       PIC 9(01).
>          03  IABC-F14-2.
>            05  IABC-AKLFJDKAS PIC X(01).
>       *    05  IABC-ZZZZZZZZ OCCURS 2 TIMES.
>            05  IABC-ZZZZZZZZ-1.
>              07  IABC-KKK PIC 9(08).
>              07  IABC-ZZZ                       PIC 9(01).
>            05  IABC-ZZZZZZZZ-2.
>              07  IABC-KKK PIC 9(08).
>              07  IABC-ZZZ                       PIC 9(01).
>          03  IABC-F14-3.
>            05  IABC-AKLFJDKAS PIC X(01).
>       *    05  IABC-ZZZZZZZZ OCCURS 2 TIMES.
>            05  IABC-ZZZZZZZZ-1.
>              07  IABC-KKK PIC 9(08).
>              07  IABC-ZZZ                       PIC 9(01).
>            05  IABC-ZZZZZZZZ-2.
>              07  IABC-KKK PIC 9(08).
>              07  IABC-ZZZ                       PIC 9(01).
>          03  FILLER PIC X(10).
>
>
You are right. That's real what I want. I have ambition that let my program
do like SQL parser.
I have an example below, may be you have interesting. Cut the below, and
named it.
And try perl filename. See the cfsql>. You can try the comman
"SELECT IABC-F13 FROM IAA;". It will work :)
But the %FR_Hash is writed dead in the program, that's what about my
question above.
The %Zdata is not important, just make the test conveiently.
===============================================================
%FR_Hash=("IABC-F13" => [0, 4, 1],
          "IABC-IABC-AKLFJDKAS-1" => [4, 1, 0],
          "IABC-KKK-1-1" => [5, 5, 1],
          "IABC-ZZZ-1-1" => [10, 1, 0],
          "IABC-KKK-1-2" => [11, 5, 1],
          "IABC-ZZZ-1-2" => [16, 1, 0],
          "IABC-IABC-AKLFJDKAS-2" => [17, 1, 0],
          "IABC-KKK-2-1" => [18, 5, 1],
          "IABC-ZZZ-2-1" => [23, 1, 0],
          "IABC-KKK-2-2" => [24, 5, 1],
          "IABC-ZZZ-2-2" => [29, 1, 0],
          "FILLER"       => [30, 10, 0]);
%Zdata=("IAA.FR" => '../zdata/IAA.dat');
print 'cfsql>';
$command="";
$command=<>;
chomp $command;
while($command ne "exit"){
        $command =~ /select\s+(.*)\s+from\s+(.*);/i;
        $cf_name="\U$2\E\.FR";
        $cf_field=$1;
        $cf_field=~s/\s+//g;
        @cf_field=split(/,/,"\U$cf_field\E");
        print $cf_name;
        if($command){
                $ra_data=&Parse_Command(\%FR_Hash, \@cf_field, $cf_name);
                for($i=0; $i<= $#{$ra_data}; $i++){
                        print "\n" unless ($i%@cf_field);
                        print $ra_data->[$i], " ";
                }
        }
        print 'cfsql>';
        $command="";
        $command=<>;
        chomp $command;
}

sub Parse_Command{
        my $rh_FR_Hash=shift;
        my $ra_cf_field=shift;
        my $cf_name=shift;
        my @temp=();

        open(IN, $Zdata{$cf_name}) or die;
        while($line=<IN>){
                chomp $line;
                for($i=0; $i<=$#{$ra_cf_field}; $i++){
                        $temp=substr($line,
                                $rh_FR_Hash->{$ra_cf_field->[$i]}->[0],
                                $rh_FR_Hash->{$ra_cf_field->[$i]}->[1]);
                        if($rh_FR_Hash->{$ra_cf_field->[$i]}->[2] == 1){
                                $temp=int(&GetValue($temp));
                        }
                        push(@temp, $temp);
                }
        }
        close(IN);
        return \@temp;
}

sub GetValue{
        my($real_str)=@_;
        my($aa);

        $aa=unpack("b*",$real_str);
        $aa =~ s/(\d)(\d)(\d)(\d)/
                $bb=(2**0*$1)+(2**1*$2)+(2**2*$3)+(2**3*$4);
                if($bb<10){$bb;}
                elsif($bb==12){"+";}
                elsif($bb==13){"-";}
                /eg;
        $aa =~ s/(\d)(\d)/$2$1/g;
        $aa =~ s/(\d*)([-+])(\d*)/$2$1$3/g;
        return $aa;
}


===============================================================
> ps: Your English looked good enough to me.
I don't think so ><
>
> --
> Russ Jones - HP OpenView IT/Operatons support
> Raytheon Aircraft Company, Wichita KS
> russ_jones@rac.ray.com 316-676-0747
>
> Te audire non possum. Musa sapientum fixa est in aure. - Plautus




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

Date: Wed, 14 Feb 2001 02:09:59 -0000
From: Chris Stith <mischief@velma.motion.net>
Subject: Re: How to redirect output within Perl script?
Message-Id: <t8jq7n131nkof8@corp.supernews.com>

A courtesy CC of this post might be sent to slyudmir@jefco.com
if I decide I fell like it.

rvl <rvl2@mailandnews.com> wrote:
> I'm converting from old system to Sun Unix and have to convert scripts.
> I need to be able redirect output to a file from a Perl script, but I
> can't do it by calling from the outside shell (i.e. $ script > log_file)
> as this script is being run from shell and from other executable
> programs actively and in background.

> In other words I need to be able to redirect from inside this shell.

> Here's a sample of the script, I need to redirect _everything_
> to a file so nothing is printed on screen. Please help.

As Zork might say, "I see no output to STDOUT here." In your sample,
all your print statements point somewhere specific. If you need to
also capture the output of the program you call in this line:
     open(DATA, "| /runs/prcyldcalc") || eval($main'SEVERITY);
then you need to look into something like open2().

perldoc -f open2

However, if you simply have other print statements in your code
which you need to make sure are not going to STDOUT, you can
put something of this sort near the top of your program:

    open(OUTPUT_file, ">somefile") || die "Can't open file: $!\n";
    select OUTPUT_file;

perldoc -f select

> I would appreciate if you could email me the reply at
> slyudmir@jefco.com as my company blocks access to usenet.
> Thank you.
> ----------------------------------------------------------------
> #!/usr/bin/perl
>     package pricefeed_updt;

>     require 'check_object_cpl.pl';
>     $main'SEVERITY = 'exit(1)';
>     $pricefile = &main'CHECK_OBJECT('=');

> # calc yields for option=2 (IDC priced flg='I')
>     open(DATA, "| /runs/prcyldcalc") || eval($main'SEVERITY);
>     print(DATA "\n");
>     print(DATA "2\n");
>     print(DATA "N\n");
>     close(DATA);

>     exit(0);
> ----------------------------------------------------------------

Chris

-- 
Christopher E. Stith
Product shown enlarged to make you think you're getting more.



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

Date: 14 Feb 2001 00:06:42 GMT
From: nospam@hairball.cup.hp.com (Richard J. Rauenzahn)
Subject: Re: Need help with an array
Message-Id: <982109201.993899@hpvablab.cup.hp.com>



Janet Schlueb <jgs2283@MailAndNews.com> writes:
>If I have
>
>$webhost = 'www.whatever.net';
>$webpage[0] = 
>'/servlet/ApparelKeySearch?xaction=%2Fservlet%2FApparelKeySearch&iqformat=xm
>l&
>iqdtdtype=0&site=spreexml&keywords=' .$key. 
>'&logic=0&Submit=Submit+Query&maxpersite=1&maxtotal=100&pagesize=9999';
>$webpage[1] = 
>'/servlet/AuctionKeySearch?xaction=%2Fservlet%2FAuctionKeySearch&iqformat=xm
>l&
>iqdtdtype=0&site=spreexml&keywords=' .$key. 
>'&logic=0&Submit=Submit+Query&maxpersite=1&maxtotal=100&pagesize=9999';
[...]
>#and so on up to $webpage[21], would the following 2 statements be correct?
>
>$PageUrl  = 'http://' . $webhost . @webpage[0..21];
>$rqst = HTTP::Request->new('GET', $PageUrl);
>
>I really appreciate your help!  Thanks, Janet

No -- because $PageUrl is a scalar.  You have to use a looping mechanism
and the foreach loop is the easiest:

foreach $url (@webpage) {
   $request = HTTP::Request->new('GET', $url);
}

You can also use the push function to load the @webpage array instead of
assigning into each slot.

By the way, please don't top post -- put your responses underneath and
remove content that isn't necessary.  For a better explanation, see...

	http://www.uwasa.fi/~ts/http/quote.html and
	http://www.perlfaq.com/faqs/id/131 

Learning how to quote correctly now will make it easier for people to
help you - which is something you'll want!

Rich
-- 
Rich Rauenzahn ----------+xrrauenza@cup.hp.comx+ Hewlett-Packard Company
Technical Consultant     | I speak for me,     |   19055 Pruneridge Ave. 
Development Alliances Lab|            *not* HP |                MS 46TU2
ESPD / E-Serv. Partner Division +--------------+---- Cupertino, CA 95014


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

Date: Wed, 14 Feb 2001 02:07:12 +0000 (UTC)
From: efflandt@xnet.com (David Efflandt)
Subject: Re: Newbie Perl / CGI Question
Message-Id: <slrn98jq0d.ofo.efflandt@efflandt.xnet.com>

On Tue, 13 Feb 2001 19:37:40 GMT, Matt York <bovvy@cableinet.co.uk> wrote:
>Hi Group,
>
>I'm currently trying to write a CGI script that will allow me to specify 
>my own parameters as well as those generated by a form.
>e.g.
>
>I am trying to get the parameter myparam passed into the next page not
>just the form items.
>
>print "<p>username and password</p>";
>print param('myparam','myval'');
>print textfield(-name=>'username');
>print "<BR><p>Password</p>";
>print password_field(-name=>'password');			
>print "<BR><p>Press submit below when done</p>";
>print submit('Login');
>print end_form;
>
>can anyone see what i'm doing wrong ?

Normally this would be a question for the cgi newsgroup, but that seems to
be broken.  Assuming that you have a start_form somewhere before this,
change param('myparam','myval''); to hidden('myparam','myval'');

For more info see:  perldoc CGI

-- 
David Efflandt  efflandt@xnet.com  http://www.de-srv.com/
http://www.autox.chicago.il.us/  http://www.berniesfloral.net/
http://cgi-help.virtualave.net/  http://hammer.prohosting.com/~cgi-wiz/


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

Date: Wed, 14 Feb 2001 02:50:26 -0000
From: Chris Stith <mischief@velma.motion.net>
Subject: Re: perl output to pop-up window
Message-Id: <t8jsji8ih2u406@corp.supernews.com>

Kurt Stephens <kstep@pepsdesign.com> wrote:
> "Barwood" <hbarwood@bluemarble.net> wrote in message
> news:3A899FBE.40702@bluemarble.net...
>> I am trying to have html output from a perl script open in a pop-up
>> window. I would like to know how I can modify my script or my form to do
>> so. I am very new to perl and I could use a bit of help. I have an
>> example of what I'm trying to do at
>> http://www.mineralcollecting.org/showcase/new.html

> Popup windows are a browser feature, controlled by the scripting language
> running on the browser.  A Perl CGI script on the server can only pass
> content to the browser.  Of course, theres no reason why that content can't
> be javascript.

The content can be HTML, too!

Using HTML does not preclude being able to pop up a window.

If you are a web developer and did not know this, read:
http://www.w3.org/TR/html401/present/frames.html#h-16.3.2

The HTML spec (HTML 4.0, HTML 4.01 Frameset, HTML 4.01 Transitional,
XHTML 1.0 Frameset, and XHTML 1.0 Transitional) allows for frames. Within
the frames specs, a frame targeted to an unknown window opens a new window
and sets its name to the name specified as the target.

I'd trust that a browser implements HTML 4 long before I'd trust that it
supports JavaScript and that the user has JavaScript enabled. Some
browsers supported frames before HTML 4.0 was final in fact. 

This still isn't really a Perl issue, but that doesn't mean it has to be
a JavaScript issue. People will be happy to say, "Yes, we can do for you
what that other language can't. Why don't you do all your programming
in our language?" Why send them to another camp when they don't need to
go there?

Chris

-- 
Christopher E. Stith
It's not the U in UBE that pisses people off. It's the B.
-- Martien Verbruggen in clp.misc



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

Date: Tue, 13 Feb 2001 18:42:11 -0500
From: "Kurt Stephens" <kstep@pepsdesign.com>
Subject: Re: printing IEEE float or double as hex
Message-Id: <96cgnb$6pg$1@slb7.atl.mindspring.net>

"Chuck Meyers" <chuck.meyers@lmco.com> wrote in message
news:3A89B6DD.597BC8F9@lmco.com...
> Is there a way within perl to print a float or double as a 32 or 64 bit
> integer?
> Are calling a C routine or picking the double apart bit by bit the only
> options?
>

You can convert data using the pack and unpack functions.  For example, to
print a 32 bit float in hex you would pack the value as a float, unpack it
as an unsigned long, and print it using (s)printf.  Note that with doubles
you will need a workaround if your system does not support 64 bit integers.

use strict;
use warnings;

my $real = 1/7;
print "Real number: $real\n";

my $packed_float = pack "f", $real;
my $packed_double = pack "d", $real;

print "Float is ".length($packed_float)." bytes\n";
print "Double is ".length($packed_double)." bytes\n";

printf "Float ss hex(1):  %04X\n",
       unpack "L", $packed_float;

printf "Double as hex(1): %04X%04X\n",
       unpack "LL", $packed_double;

my $hex_float  = sprintf("%04X",
                         unpack("L",  pack("f", $real)));

my $hex_double = sprintf("%04X%04X",
                         unpack("LL", pack("d", $real)));

print "Float as hex(2):  $hex_float\n";
print "Double as hex(2): $hex_double\n";


HTH,

Kurt Stephens







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

Date: Tue, 13 Feb 2001 19:45:19 -0700
From: "bowman" <bowman@montana.com>
Subject: Re: Simple GUI question  (TK)
Message-Id: <Zemi6.434$dK.4628@newsfeed.slurp.net>


terminalsplash <shino_korah@yahoo.com> wrote in message
news:96cecn$nc@news.or.intel.com...
> $t->insert("Sample","end");


the index goes first, as in   $t->insert('end', 'sample');




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

Date: Tue, 13 Feb 2001 17:01:25 -0600
From: Michael Carman <mjcarman@home.com>
Subject: Re: Syntax quickie: How do I get the index of an arrayref?
Message-Id: <3A89BCC5.C461AD1E@home.com>

Philip Obbard wrote:
> 
> I know this must be something simple, but I've been combing my O'Reilly
> books and can't seem to get the syntax right.

Check out the perlref manpage.
 
> Question: I know I can get the index of @items by using $#items. But if
> $items is actually an arrayref, which variable to I use?

$#items is not just any index from @items -- it's the index of the last
element. If $items is an array ref, you just need to dereference it:

$#{$items}

-mjc


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

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


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