[22301] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 4522 Volume: 10

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Thu Feb 6 14:08:54 2003

Date: Thu, 6 Feb 2003 11:07:10 -0800 (PST)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Thu, 6 Feb 2003     Volume: 10 Number: 4522

Today's topics:
    Re: 'Flatten' array of phrases <mpapec@yahoo.com>
    Re: 'Flatten' array of phrases <pinyaj@rpi.edu>
    Re: 'Flatten' array of phrases <pinyaj@rpi.edu>
    Re: 'Flatten' array of phrases (maybe)
        [ANNOUNCE] Astro::Sunrise-0.06 <mothra@nowhereatall.com>
    Re: a few newbie questions... <jds@trumpetweb.co.uk>
    Re: a few newbie questions... <nickyboy@4ce.co.uk>
    Re: a few newbie questions... <nickyboy@4ce.co.uk>
    Re: ActivePerl distro. whatNext (samphdauto)
    Re: different autoreply after submitting form (Tad McClellan)
        Generate Postscript Level 2 for Images <srikantvaishampayan@hotmail.com>
    Re: Help with arrays and such, please. <spikey-wan@bigfoot.com>
    Re: Help with arrays and such, please. <goldbb2@earthlink.net>
    Re: How do i use pidof <goldbb2@earthlink.net>
    Re: Installing a module downloaded from CPAN (Randy Kobes)
    Re: Installing a module downloaded from CPAN <brian.smart@blueyonder.co.uk>
        one line character replacement... <jeff_hamann@hamanndonald.com>
    Re: Optimizing subroutine (Anno Siegel)
    Re: Optimizing subroutine <nobull@mail.com>
    Re: Q on Guttman-Rosler <goldbb2@earthlink.net>
    Re: Regex Multiple occurances of a pattern in multiple  <goldbb2@earthlink.net>
    Re: Return the index of an array <bigj@kamelfreund.de>
    Re: Some embedded Perl (ala libperl.a) questions... <f_ker@yahoo.co.uk_NO_SPAM>
    Re: Splitting lines from a temporary buffer (Anno Siegel)
    Re: Strange behaviour using underscore "_" as a subrout <bigj@kamelfreund.de>
        Too many greps (Sherman Willden)
    Re: Too many greps <glex_nospam@qwest.net>
    Re: Too many greps (Tad McClellan)
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

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

Date: Thu, 06 Feb 2003 17:16:02 +0100
From: Matija Papec <mpapec@yahoo.com>
Subject: Re: 'Flatten' array of phrases
Message-Id: <t1254v44g9mce8pn0imdp0fmrj4ggvfccb@4ax.com>

X-Ftn-To: Jacqui or 

Jacqui or (maybe) Pete <porjes@spamcop.net> wrote:
>about minutes
>according
>according the
>according the times
>according the times herald
>according the times herald record
>add
>add cooked
>add recipe
>add recipe box
>add salt
>add some
>
>Should be flattened to:
>
>about minutes
>according the times herald record
>add cooked
>add recipe box
>add salt
>add some

This might work:

$prev = '-';
LOOP: ...{
  if ($current !~ /^$prev/) { print "$prev\n" }
  $prev = $current;
}


-- 
Matija


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

Date: Thu, 6 Feb 2003 11:34:43 -0500
From: Jeff 'japhy' Pinyan <pinyaj@rpi.edu>
To: "Jacqui or (maybe) Pete" <porjes@spamcop.net>
Subject: Re: 'Flatten' array of phrases
Message-Id: <Pine.SGI.3.96.1030206112427.67194A-100000@vcmr-64.server.rpi.edu>

[posted & mailed]

On Thu, 6 Feb 2003, Jacqui or (maybe) Pete wrote:

>I've got a large array of words and phrases. Some of the phrases are 
>partially duplicated, and I want to remove the duplications.  I've got a 
>big clunky loop that does the job, but I figure there must be a smarter 
>and more perl-like way of doing it.  

It sounds like you want to remove any elements from an array that are
themselves PREFIXES of other elements, right?

If your data appears the way you showed it, you'll save yourself one step:
sorting the list.

  # assuming array @data
  @data = sort @data;

  my @flattened = shift @data;
  for (@data) {
    pop @flattened if $_ =~ /^\Q$flattened[-1]/;
    push @flattened, $_;
  }

The pop() line gets rid of the latest element we put onto @flattened if
it's the prefix to the next element we look at in @data.

>Your site's most important visitors are completely blind, 
>totally deaf, and use browsers you've never seen. 

 ... and have never heard of.  (Isn't that ironic?) ;)

-- 
Jeff Pinyan            RPI Acacia Brother #734            2003 Rush Chairman
"And I vos head of Gestapo for ten     | Michael Palin (as Heinrich Bimmler)
 years.  Ah!  Five years!  Nein!  No!  | in: The North Minehead Bye-Election
 Oh.  Was NOT head of Gestapo AT ALL!" | (Monty Python's Flying Circus)




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

Date: Thu, 6 Feb 2003 11:59:49 -0500
From: Jeff 'japhy' Pinyan <pinyaj@rpi.edu>
Subject: Re: 'Flatten' array of phrases
Message-Id: <Pine.SGI.3.96.1030206115857.70568A-100000@vcmr-64.server.rpi.edu>

On Thu, 6 Feb 2003, Jeff 'japhy' Pinyan wrote:

>[posted & mailed]
>
>On Thu, 6 Feb 2003, Jacqui or (maybe) Pete wrote:
>
>>I've got a large array of words and phrases. Some of the phrases are 
>>partially duplicated, and I want to remove the duplications.  I've got a 
>>big clunky loop that does the job, but I figure there must be a smarter 
>>and more perl-like way of doing it.  
>
>It sounds like you want to remove any elements from an array that are
>themselves PREFIXES of other elements, right?
>
>If your data appears the way you showed it, you'll save yourself one step:
>sorting the list.
>
>  # assuming array @data
>  @data = sort @data;
>
>  my @flattened = shift @data;
>  for (@data) {
>    pop @flattened if $_ =~ /^\Q$flattened[-1]/;
>    push @flattened, $_;
>  }

And here's another way to do the loop:

  for (@data) {
    if ($_ =~ /^\Q$flattened[-1]/) { $flattened[-1] = $_ }
    else { push @flattened, $_ } 
  }

-- 
Jeff Pinyan            RPI Acacia Brother #734            2003 Rush Chairman
"And I vos head of Gestapo for ten     | Michael Palin (as Heinrich Bimmler)
 years.  Ah!  Five years!  Nein!  No!  | in: The North Minehead Bye-Election
 Oh.  Was NOT head of Gestapo AT ALL!" | (Monty Python's Flying Circus)



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

Date: Thu, 6 Feb 2003 17:15:27 -0000
From: Jacqui or (maybe) Pete <porjes@spamcop.net>
Subject: Re: 'Flatten' array of phrases
Message-Id: <MPG.18aca88ea10360cf9897c5@news.CIS.DFN.DE>

In article <Pine.SGI.3.96.1030206115857.70568A-100000@vcmr-
64.server.rpi.edu>, pinyaj@rpi.edu says...
> On Thu, 6 Feb 2003, Jeff 'japhy' Pinyan wrote:
> 
> >[posted & mailed]
> >
> >On Thu, 6 Feb 2003, Jacqui or (maybe) Pete wrote:
> >
> >>I've got a large array of words and phrases. Some of the phrases are 
> >>partially duplicated, and I want to remove the duplications.  I've got a 
> >>big clunky loop that does the job, but I figure there must be a smarter 
> >>and more perl-like way of doing it.  
> >
> >It sounds like you want to remove any elements from an array that are
> >themselves PREFIXES of other elements, right?
> >
> >If your data appears the way you showed it, you'll save yourself one step:
> >sorting the list.
 ...
> And here's another way to do the loop:
> 
>   for (@data) {
>     if ($_ =~ /^\Q$flattened[-1]/) { $flattened[-1] = $_ }
>     else { push @flattened, $_ } 
>   }
> 
> 
That's exactly the kind of thing I was looking for, thanks for taking 
the time to help.
-- 
Your site's most important visitors are completely blind, 
totally deaf, and use browsers you've never seen. 


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

Date: Thu, 6 Feb 2003 06:04:46 -0800
From: "Mothra" <mothra@nowhereatall.com>
Subject: [ANNOUNCE] Astro::Sunrise-0.06
Message-Id: <3e427cc5$1_7@news.teranews.com>

Hi All,

This is to announce a new release of Astro::Sunrise perl module.
This is a complete rewrite of the module/added new functionality.

Enjoy!!

Ron Hill


NAME
    Astro::Sunrise - Perl extension for computing the sunrise/sunset on a
    given day

SYNOPSIS
     use Astro::Sunrise;

     ($sunrise, $sunset) = sunrise(YYYY,MM,DD,longitude,latitude,Time
Zone,DST);
     ($sunrise, $sunset) = sunrise(YYYY,MM,DD,longitude,latitude,Time
Zone,DST,ALT);

     $sunrise = sun_rise(longitude,latitude);
     $sunset = sun_set(longitude,latitude);

     $sunrise = sun_rise(longitude,latitude,ALT);
     $sunset = sun_set(longitude,latitude,ALT);

     $sunrise = sun_rise(longitude,latitude,ALT,day_offset);
     $sunset = sun_set(longitude,latitude,ALT,day_offset);

DESCRIPTION
    This module will return the sunrise/sunset for a given day.

     Eastern longitude is entered as a positive number
     Western longitude is entered as a negative number
     Northern latitude is entered as a positive number
     Southern latitude is entered as a negative number

    There are a number of sun altitides to chose from. The default is -0.833
    because this is what most countries use. Feel free to specify it if you
    need to. Here is the list of values to specify altitude (ALT) with:

    0 degrees
        Center of Sun's disk touches a mathematical horizon

    -0.25 degrees
        Sun's upper limb touches a mathematical horizon

    -0.583 degrees
        Center of Sun's disk touches the horizon; atmospheric refraction
        accounted for

    -0.833 degrees
        Sun's supper limb touches the horizon; atmospheric refraction
        accounted for

    -6 degrees
        Civil twilight (one can no longer read outside without artificial
        illumination)

    -12 degrees
        Nautical twilight (navigation using a sea horizon no longer
        possible)

    -15 degrees
        Amateur astronomical twilight (the sky is dark enough for most
        astronomical observations)

    -18 degrees
        Astronomical twilight (the sky is completely dark)

USAGE
    sunrise
        "($sunrise, $sunset) = sunrise(YYYY,MM,DD,longitude,latitude,Time
        Zone,DST);"
        "($sunrise, $sunset) = sunrise(YYYY,MM,DD,longitude,latitude,Time
        Zone,DST,ALT);"
            Returns the sunrise and sunset times, in HH:MM format. (Note:
            Time Zone is the offset from GMT and DST is daylight savings
            time, 1 means DST is in effect and 0 is not). In the first form,
            a default altitude of -.0833 is used. In the second form, the
            altitude is specified as the last argument. Note that adding 1
            to the Time Zone during DST and specifying DST as 0 is the same
            as indicating the Time Zone correctly and specifying DST as 1.

        *For Example*
             ($sunrise, $sunset) = sunrise( 2001, 3, 10, 17.384, 98.625, -5,
0 );
             ($sunrise, $sunset) = sunrise( 2002, 10, 14, -105.181,
41.324, -7, 1, -18);

    sun_rise
        "$sun_rise = sun_rise( longitude, latitude );"
        "$sun_rise = sun_rise( longitude, latitude, ALT );"
        "$sun_rise = sun_rise( longitude, latitude, ALT, day_offset );"
            Returns the sun rise time for the given location. The first form
            uses today's date (from Time::Object) and the default altitude.
            The second form adds specifying a custom altitude. The third
            form allows for specifying an integer day offset from today,
            either positive or negative.

        *For Example*
             $sunrise = sun_rise( -105.181, 41.324 );
             $sunrise = sun_rise( -105.181, 41.324, -15 );
             $sunrise = sun_rise( -105.181, 41.324, -12, +3 );
             $sunrise = sun_rise( -105.181, 41.324, undef, -12);

    sun_set
        "$sun_set = sun_set( longitude, latitude );"
        "$sun_set = sun_set( longitude, latitude, ALT );"
        "$sun_set = sun_set( longitude, latitude, ALT, day_offset );"
            Returns the sun set time for the given location. The first form
            uses today's date (from Time::Object) and the default altitude.
            The second form adds specifying a custom altitude. The third
            form allows for specifying an integer day offset from today,
            either positive or negative.

        *For Example*
             $sunrise = sun_set( -105.181, 41.324 );
             $sunrise = sun_set( -105.181, 41.324, -15 );
             $sunrise = sun_set( -105.181, 41.324, -12, +3 );
             $sunrise = sun_set( -105.181, 41.324, undef, -12);

AUTHOR
    Ron Hill rkhill@firstlight.net

SPECIAL THANKS
    Robert Creager [Astro-Sunrise@LogicalChaos.org] For providing help with
    converting Paul's C code to perl For providing code for sun_rise,
    sun_set sub's Also adding options for different altitudes

CREDITS
    Paul Schlyer, Stockholm, Sweden
    for his excellent web page on the subject.

    Rich Bowen (rbowen@rbowen.com)
    for suggestions

    Adrian Blockley [adrian.blockley@environ.wa.gov.au]
    for finding a bug in the conversion to local time

    Lightly verified against
    http://aa.usno.navy.mil/data/docs/RS_OneYear.html

COPYRIGHT and LICENSE
    Here is the copyright information provided by Paul Schlyer:

    Written as DAYLEN.C, 1989-08-16

    Modified to SUNRISET.C, 1992-12-01

    (c) Paul Schlyter, 1989, 1992

    Released to the public domain by Paul Schlyter, December 1992

    Permission is hereby granted, free of charge, to any person obtaining a
    copy of this software and associated documentation files (the
    "Software"), to deal in the Software without restriction, including
    without limitation the rights to use, copy, modify, merge, publish,
    distribute, sublicense, and/or sell copies of the Software, and to
    permit persons to whom the Software is furnished to do so, subject to
    the following conditions:

    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    DEALINGS IN THE SOFTWARE.

BUGS
SEE ALSO
    perl(1).






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

Date: Thu, 6 Feb 2003 18:27:16 -0000
From: "Julia deSilva" <jds@trumpetweb.co.uk>
Subject: Re: a few newbie questions...
Message-Id: <wNx0a.232$kE6.185@news-binary.blueyonder.co.uk>

amazing reply don't you think ?

You can take that any way you want !




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

Date: Thu, 6 Feb 2003 18:34:12 -0000
From: "nickyboy" <nickyboy@4ce.co.uk>
Subject: Re: a few newbie questions...
Message-Id: <xUx0a.14540$RZ.163791@newsfep4-win.server.ntli.net>


> Have you seen the Posting Guidelines that are posted here frequently?

I haven't seen them no...

> > I'm currently stuck with a php project and I think perl is the way
around
> > it...
>
>
> Actually, any CGI program, whether written in Perl or in some
> other language, is a potential way around it.

ok - valid point...  but I'd like to use perl (perhaps the post to a perl
group would indicate that)! :-)

>
> > Firstly I want to be able to run a script as a different user from that
> > assigned to apache, I've been told that simply running
> > www.domain.com/~mike/script.pl will run the script as mike (assuming
that's
> > all setup correctly)...  I can't just run php from there because apache
just
> > runs the script as it normally would and doesn't see the different user!
:(
> > will that work?
>
>
> None of the above has anything to do with Perl. It has to do
> with web server setup, so you should ask that part in a group
> where such things are discussed, such as:

Sorry - I didn't really think it was OT  -  I've setup the server and I'm
not asking for help with that.  The question was more aimed at perls
interaction within that type of setup...  I didn't think a webserver setup
newsgroup would be the best place to ask about perls abilities or how it
interacts - I know that's where I've found the shortfall with php and again
that isn't an issue discussed within a server related group!

> > Assuming that will work I need to start learning perl, what is the
official
> > site
>
>    www.perl.org
>    www.perl.com
>    lists.perl.org
>
> > / good site with documentation,
>
>
> The "official" documentation is included with the perl distribution
> itself. If you have installed perl, then it is already on your
> hard disk somewhere. The Posting Guidelines mention how to get
> started with the std docs.

Thanks! - I was a little confused having seen both .org and .com - wondered
if one site was just trying to jump on the bandwagon.

Thanks very much for your help, I think it's got me started...
Rgds
Nick








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

Date: Thu, 6 Feb 2003 18:38:00 -0000
From: "nickyboy" <nickyboy@4ce.co.uk>
Subject: Re: a few newbie questions...
Message-Id: <5Yx0a.14545$RZ.163796@newsfep4-win.server.ntli.net>

> amazing reply don't you think ?
>
> You can take that any way you want !

Is it me or is it cold in here?  ;-)
- maybe I'm too used to the comfortable warmth of the php groups! :-P

I do appreciate the help though - thanks Tad.




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

Date: 6 Feb 2003 10:39:39 -0800
From: samj@eisa.net.au (samphdauto)
Subject: Re: ActivePerl distro. whatNext
Message-Id: <65050d4c.0302061039.5dcf26b7@posting.google.com>

Mina Naguib <spam@thecouch.homeip.net> wrote in message news:<xMh0a.50523$k52.709754@wagner.videotron.net>...
> -----BEGIN xxx SIGNED MESSAGE-----
> Hash: SHA1
> 
> 
> Sam Jesse wrote:
> | Hello
> | I am new to Perl,
> 
> Great.  Welcome to the perl world...
> 
> | coming from windows 2000 and my mind set up is all
> | windows. I downloaded a zip file named Stable from Perl.com unziped it
>  to a
> | folder named Perl-5.8.0, then I went looking for *.exe file to install the
> | program but found nothing. well.. am I missing something?
> 
> Yes. As with any programming language, the programmer writes source
> code.  With some languages, that code is then compiled to produce a
> binary which the end-user runs.  With others, the source code is ran
> through an interpreter.
> 
> Perl obviously is, aside from being a programming language, a program
> written by someone.  You downloaded the source code instead of a
> runn-able binary.
> 
> | then I learnd oh..
> | there is a source code and there is bianary.. well what does that
>  suppose to
> | mean.. no clue.. oh..
> 
> If you do not know the difference then I suggest you invest in a book
> tailored to beginner programmers in general.

any recommendation for this, and for Perl in specific? and oh.. is
there a Perl newsgroup that is very fast in responds, google takes too
long just to post original posts.?

> 
> |I remember I downloaded the source code.. well maybe
> | if I download a bianary that will have *.exe to install the program. so I
> | happen to go to ActivePerl5.8 downloaded that and now I have *.exe.. oh
> | great.. letus install it .. then ... your Windows Installer is not the
> | latest version. Ok.. got that fiexed and installed the program.. great..
> | State | Programs | ActievePerl | Pakage Manager which opend a ppm>
> prompt..
> 
> Package Manager is used to install additional packages/modules.  Is that
> what you want ? then type "help" at the ppm> prompt. If that's not what
> you want, then do not run the Package Manager.

so the packages is programs written to be executed by perl.ext. is do
you recommend some sites which has some free & usfull downloads
instead of writing my own from scratch?

> 
> | what I am suppoe to do..
> 
> That depends on what you want to do.  Are you going to be writing perl
> programs or run already-written programs ? Then run them with perl.exe
> installed in the directory you specified during the installation procedure.
> 
> perl.exe is an interpreter, not a programming environment.  Don't expect
> to be able to just "run" it from the "State | Programs | ActievePerl"
> and get a GUI. That's not what the perl interpreter is. All it does is
> run the perl code you throw it's way.
> 
> 
I will need to run packges as well as write my own. now to run
packages, I did like nobody suggested perl -e "print 'Hello World!'"
which printed Hello World! .. now.. to run a package, would I do the
same sort of thing? I know this perl myscriptfile.pl will run a file.
is it the same for a package? or once I click on the package icon,
it's association with Perl will open it automaticly?
if activePerl is not a programming environment. how do I get a
Porgramming enviro inodrer to start making my own packages?

thanks

Sam
> -----BEGIN xxx SIGNATURE-----
> Version: GnuPG v1.0.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iD8DBQE+QaiceS99pGMif6wRAt86AKC+U/iUVOcFliOQjMS9klPM1wrkWgCglEgZ
> qm7GQ174DlPoqPVsnDiVISU=
> =ni9q
> -----END PGP SIGNATURE-----


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

Date: Thu, 6 Feb 2003 12:33:15 -0600
From: tadmc@augustmail.com (Tad McClellan)
Subject: Re: different autoreply after submitting form
Message-Id: <slrnb45ajb.ehv.tadmc@magna.augustmail.com>


[ Please do NOT send stealth Cc's.

  Please do not top-post and full-quote.

  Please DO see the Posting Guidelines that are posted here frequently.
]


Marchal van Lare <vanlare@zeelandnet.nl> wrote:

> When someone submits a form, I want the output to be e-mailed to me,
> while the submitter receives an automatic reply (with confirmation of the
> information being submitted, also by e-mail).
> 
> Is it possible to let the CGI program send out a reply, depending
> on what the submitter has chosen in the form?


Yes.


-- 
    Tad McClellan                          SGML consulting
    tadmc@augustmail.com                   Perl programming
    Fort Worth, Texas


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

Date: Thu, 6 Feb 2003 11:39:02 -0500
From: "Srikant Vaishampayan" <srikantvaishampayan@hotmail.com>
Subject: Generate Postscript Level 2 for Images
Message-Id: <b1u336$dea5@eccws12.dearborn.ford.com>

Hi,

I have a report containing the following features:

Uses Legal type Paper (14' x 8.5')
Landscape Mode
The report contains Boxes, Lines and several Fonts.
It also contains Images in the form of JPEG/GIF/PNG format.

With all the information above, I would like to generate a PostScript (Level
2) file using Perl modules.

Hence, I want to include Boxes, Lines, Fonts and JPEG/GIF/PNG Images in the
report and the output should be a PostScript (Level 2) file.

Could you please let me know how to achieve it.

Thanks.
Please send your response to srikantvaishampayan@hotmail.com

-Srikant





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

Date: Thu, 6 Feb 2003 16:49:07 -0000
From: "Richard S Beckett" <spikey-wan@bigfoot.com>
Subject: Re: Help with arrays and such, please.
Message-Id: <b1u3nq$nrk$1@newshost.mot.com>

> Moving from "newbie" to "beginner" requires understanding
> and using hashes.

Hey! I'm not a newbie any more!

> Moving from "beginner" to "intermediate" Perl programmer
> requires understanding references.

Hmmm...Well I understand them, but have no idea _why_ you'd want to use
them, so what does that make me? ;-)

R.




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

Date: Thu, 06 Feb 2003 13:29:25 -0500
From: Benjamin Goldberg <goldbb2@earthlink.net>
Subject: Re: Help with arrays and such, please.
Message-Id: <3E42A985.96B3301F@earthlink.net>

Richard S Beckett wrote:
> 
> > Moving from "newbie" to "beginner" requires understanding
> > and using hashes.
> 
> Hey! I'm not a newbie any more!
> 
> > Moving from "beginner" to "intermediate" Perl programmer
> > requires understanding references.
> 
> Hmmm...Well I understand them, but have no idea _why_ you'd want to
> use them, so what does that make me? ;-)

Understanding them includes understanding when and why you'd use them.

Also, they're often used in places where it might not be obvious to a
beginner that they're being used... such as $a[1][2].

-- 
"So, who beat the clueless idiot today?"
"Well, we flipped for it, but when Kuno
 landed, he wasn't in any shape to fight."
"Next time, try flipping a *coin.*"


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

Date: Thu, 06 Feb 2003 13:32:00 -0500
From: Benjamin Goldberg <goldbb2@earthlink.net>
Subject: Re: How do i use pidof
Message-Id: <3E42AA20.113652E9@earthlink.net>

Anno Siegel wrote:
[snip]
>     $existent = signal( 0, $pid);

I think you mean:

   $existant = kill( 0, $pid );


-- 
"So, who beat the clueless idiot today?"
"Well, we flipped for it, but when Kuno
 landed, he wasn't in any shape to fight."
"Next time, try flipping a *coin.*"


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

Date: 6 Feb 2003 16:42:46 GMT
From: randy@theoryx5.uwinnipeg.ca (Randy Kobes)
Subject: Re: Installing a module downloaded from CPAN
Message-Id: <slrnb453o3.krq.randy@theoryx5.uwinnipeg.ca>

On Thu, 6 Feb 2003 16:00:15 -0000, 
   Brian Smart <brian.smart@blueyonder.co.uk> wrote:
>Hello Everybody,
>I have read everything I can including the Faqs but can't 
>seem to get things right.

>I have downloaded a modual, placed it in my cgi-bin directory on the web
>server I use (UNIX), have unpacked it and tried to run the code perl
>Makefile.PL PREFIX=../../cgi-bin. Makefile runs until it tries to download
>and unpack another module from CPAN that is needed to complete the
>installation. This stops with the error message:

>Could not gzopen
>y/sources/authors/id/I/IL/ILYAZ/modules/Math-Pari-2.010305.tar.gz at
>/usr/lib/perl5/5.00503/CPAN.pm line 4159
>
>Could somebody explain what this message is about, and what if 
>anything I am doing wrong.

It looks like when you configured CPAN.pm a stray 'y' entered,
as you're trying to open a file in a 'y' directory (which
you probably don't have). Try reconfiguring CPAN.pm:
    bash$ perl -MCPAN -e shell
    cpan> o conf init
or else edit CPAN.pm's Config.pm (or, if you use it, your
private $HOME/.cpan/CPAN/MyConfig.pm) and look for the
stray 'y'.

-- 
best regards,
randy kobes


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

Date: Thu, 6 Feb 2003 19:02:04 -0000
From: "Brian Smart" <brian.smart@blueyonder.co.uk>
Subject: Re: Installing a module downloaded from CPAN
Message-Id: <4ay0a.162$CN6.70@news-binary.blueyonder.co.uk>

Thanks Randy,
I will see if I can find the problem.
Regards

Brian Smart

"Randy Kobes" <randy@theoryx5.uwinnipeg.ca> wrote in message
news:slrnb453o3.krq.randy@theoryx5.uwinnipeg.ca...
> On Thu, 6 Feb 2003 16:00:15 -0000,
>    Brian Smart <brian.smart@blueyonder.co.uk> wrote:
> >Hello Everybody,
> >I have read everything I can including the Faqs but can't
> >seem to get things right.
>
> >I have downloaded a modual, placed it in my cgi-bin directory on the web
> >server I use (UNIX), have unpacked it and tried to run the code perl
> >Makefile.PL PREFIX=../../cgi-bin. Makefile runs until it tries to
download
> >and unpack another module from CPAN that is needed to complete the
> >installation. This stops with the error message:
>
> >Could not gzopen
> >y/sources/authors/id/I/IL/ILYAZ/modules/Math-Pari-2.010305.tar.gz at
> >/usr/lib/perl5/5.00503/CPAN.pm line 4159
> >
> >Could somebody explain what this message is about, and what if
> >anything I am doing wrong.
>
> It looks like when you configured CPAN.pm a stray 'y' entered,
> as you're trying to open a file in a 'y' directory (which
> you probably don't have). Try reconfiguring CPAN.pm:
>     bash$ perl -MCPAN -e shell
>     cpan> o conf init
> or else edit CPAN.pm's Config.pm (or, if you use it, your
> private $HOME/.cpan/CPAN/MyConfig.pm) and look for the
> stray 'y'.
>
> --
> best regards,
> randy kobes




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

Date: Thu, 6 Feb 2003 09:41:15 -0800
From: "Jeff D. Hamann" <jeff_hamann@hamanndonald.com>
Subject: one line character replacement...
Message-Id: <b1u6nr$2me$1@news.orst.edu>

I've got a file that I generate from arc/info and need to replace the single
quotes with double quotes like:

1,63,0.11612548,'','',0
2,63,0.32873990,'PRIVT','PNI',0
3,0,0.10497428,'PRIVT','PNI',0
4,0,0.03098483,'PRIVT','PNI',0
5,21,0.03925781,'','',2
6,21,2.10636263,'PRIVT','PNI',2
7,71,0.22141694,'PRIVT','PNI',0

and turn it into

1,63,0.11612548,"","",0
2,63,0.32873990,"PRIVT","PNI",0

etc....

I just can't decide what the best (of the millions I'm sure there are) way
to do this, so I thought I'd post a perl newsgroup message since I've never
written a perl script before and see if there was a one liner solution I
could call from within arc/info.

I found these examples, but have no idea with one is appropriate....

perl -pi -e 's/wordToFind/replaceWithThisWord/' *.fileExtension
perl -pi -e 's/wordToFind/replaceWithThisWord/g'*.fileExtension
perl -pi -e 's/wordToFind/replaceWithThisWord/gi'*.fileExtension

Jeff.




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

Date: 6 Feb 2003 17:42:53 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: Optimizing subroutine
Message-Id: <b1u6qt$43g$1@mamenchi.zrz.TU-Berlin.DE>

Jeff 'japhy' Pinyan  <pinyaj@rpi.edu> wrote in comp.lang.perl.misc:
> [posted & mailed]
> 
> On 6 Feb 2003, Dimitri wrote:
> 
> >sub clean_ctrl {
> >    my ($data) = @_;
> >    my ($i);
> >    my $len = length($data);
> >    my $out = "";
> >
> >    for ($i = 0; $i < $len; $i += 2) {
> >        if (ord(substr($data, $i, 1)) < 128) {
> >            $out .= substr($data, $i, 2);
> 
> Why does this work two characters at a time?  Can you be CERTAIN that you
> won't get a string with an even-placed control character?

Oh... good catch.  In that case something like

    s/[\201-\377](.)/sprintf "%02x", ord $1/seg;

should do.

> >        } else {
> >            $out .= sprintf("%02x", ord(substr($data, $i + 1, 1)));
> >        }
> >    }
> >
> >    $out;
> >}

Anno


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

Date: 06 Feb 2003 18:08:18 +0000
From: Brian McCauley <nobull@mail.com>
Subject: Re: Optimizing subroutine
Message-Id: <u91y2lwact.fsf@wcl-l.bham.ac.uk>

mauroid@csi.forth.gr (Dimitri) writes:

> Subject: Optimizing subroutine

Forgot to mention before...

Please put the subject of your post in the Subject of your post.  If
in doubt try this simple test.  Imagine you had done a search before
you posted.  Next imagine you found a thread with your subject line.
Would you have been able to recognise it as a related subject?

BTW the word "subroutine" in the subject line contains no information.

A good subject for this thread is really hard to find but a better one
whould have been:

Subject: Optimizing transformation of string

> About 40% of the time in my program is taken in the following
> subroutine. I am looking for ways to make it more efficient.
> Feel free to suggest anything that works faster.

Three of us came up with elegant suggestions that looked like they
would be significantly faster.  However, the benchmark results are
somewhat supprising to say the least!

#!/usr/bin/perl
use strict;
use warnings;
use Benchmark;

sub Dimitri {
     my ($data) = @_;
     my ($i);
     my $len = length($data);
     my $out = "";
 
     for ($i = 0; $i < $len; $i += 2) {
         if (ord(substr($data, $i, 1)) < 128) {
             $out .= substr($data, $i, 2);
         } else {
             $out .= sprintf("%02x", ord(substr($data, $i + 1, 1)));
         }
     }
 
     $out;
 }

sub Brian {
  (my $out = shift) =~ s/\G((?:..)*?)[\x80-\xFF](.)/$1 . sprintf '%02x', ord $2/eg;
  $out;
}

sub Salvador {
   (my $out = shift) =~s{(.)(.)}{$1 lt "\x80" ? $1.$2 : sprintf("%02x", ord($2))  }ge;
   $out;
}

sub Anno {
    join '', map ord() < 128 ? $_ : sprintf( '%02x', ord substr( $_, 1)),
      shift() =~ /../g;
}

my $test= "ab\xE0def\xFFijk" x 30;

timethese 20000, {
    Dimitri => sub { Dimitri($test) },
    Brian => sub { Brian($test) },
    Salvador => sub { Salvador($test) },
    Anno => sub { Anno($test) },
};
__END__
Benchmark: timing 20000 iterations of Anno, Brian, Dimitri, Salvador...
  Anno:  9 wallclock secs ( 8.44 usr +  0.00 sys =  8.44 CPU) @ 2369.67/s (n=20000)
  Brian:  6 wallclock secs ( 6.38 usr +  0.00 sys =  6.38 CPU) @ 3134.80/s (n=20000)
  Dimitri:  7 wallclock secs ( 6.97 usr +  0.02 sys =  6.99 CPU) @ 2861.23/s (n=20000)
  Salvador: 12 wallclock secs (11.44 usr +  0.00 sys = 11.44 CPU) @ 1748.25/s (n=20000)

-- 
     \\   ( )
  .  _\\__[oo
 .__/  \\ /\@
 .  l___\\
  # ll  l\\
 ###LL  LL\\


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

Date: Thu, 06 Feb 2003 13:41:44 -0500
From: Benjamin Goldberg <goldbb2@earthlink.net>
Subject: Re: Q on Guttman-Rosler
Message-Id: <3E42AC68.EA9365D1@earthlink.net>

kj wrote:
> Benjamin Goldberg wrote:
> 
> >Try this:
[some code]
> That's a nice optimization; it is indeed faster than the version
> with the sub calls.  It had three bugs/typos that I've fixed below:
> 
>    BEGIN {
>       8 == length pack 'd'
>          or die "Expected double length to be 8";
>    }
>    use constant BIGENDIAN => pack('N', 1) eq pack('L', 1);
>    my $i = 0;
>    my @sorted =
>       grep substr($_, 0, index($_, "\t", 8), ++$i),

Doh!  Since index() returns a 0 based index, and the third arg of substr
is a length, it's already 1 less than the length, so I didn't need to
subtract 1.  Thanks.


>       sort
>       map {
>          my $n = (split /\t/, $_, 6)[5];
>          (BIGENDIAN ?
>             pack('d', $n) : reverse pack('d', $n))
>             ^ ($n < 0 ? "\xFF" x 8 : "\x80" . "\x00" x 7) . $_

I see two changes here -- parens, and the ' . "\x00" x 7' part.  There
is no effect at all from xoring with "\x00" bytes... I *intentionally*
left that out.  As to the parens, I left out a left paren, and you
'fixed' it by removing a right paren.  So, it should be:

         ((BIGENDIAN ?
            pack('d', $n) : reverse pack('d', $n))
            ^ ($n < 0 ? "\xFF" x 8 : "\x80")) . $_

(This may be effectively identical to leaving out those parens, but it's
generally clearer to have more parens than fewer.)

>       } @origdata;
>    __END__
> 
> kj

-- 
"So, who beat the clueless idiot today?"
"Well, we flipped for it, but when Kuno
 landed, he wasn't in any shape to fight."
"Next time, try flipping a *coin.*"


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

Date: Thu, 06 Feb 2003 13:49:36 -0500
From: Benjamin Goldberg <goldbb2@earthlink.net>
Subject: Re: Regex Multiple occurances of a pattern in multiple lines
Message-Id: <3E42AE40.96152BDE@earthlink.net>

Anton wrote:
> 
> I am capuring a error message and I want to extract some info from it.
>  Unfortunately I cannot seem to get the correct syntax of regex s/ to
> extract only the information I require.  The message is something like
> 
> XXXXXXXX info '<pattern I want to keep>'
> XXXXXX info '<pattern I want to keep>'
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[snip]

my @info_to_keep = $err_msg =~ m/\binfo '(.*?)'/g;

-- 
"So, who beat the clueless idiot today?"
"Well, we flipped for it, but when Kuno
 landed, he wasn't in any shape to fight."
"Next time, try flipping a *coin.*"


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

Date: Thu, 06 Feb 2003 17:59:45 +0100
From: "Janek Schleicher" <bigj@kamelfreund.de>
Subject: Re: Return the index of an array
Message-Id: <pan.2003.02.06.16.21.58.376991@kamelfreund.de>

On Wed, 05 Feb 2003 13:54:47 +0000, Alex Banks wrote:

> I need a way to reference the index of an array element in a foreach style
> loop, as my array indices maybe out of sequence.
> 
> For example:
> 
> my @alex = ("one","two","three");
> $alex[52] = "four";
> for (@alex) {print}
> 
> This prints the contents of the array, but inside the for loop I need to
> retrieve the index for that element. So the loop will print 0, 1, 2, 52 (in
> using this method I trust that my array does not allocate space for 53
> elements, but only for the four that I use).
> 
> Any ideas - is this possible?

As TMTWTDI, here's another solution using grep:

print join ", ", 
      grep defined($alex[$_]), (0 .. $#alex);
                               

Cheerio,
Janek


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

Date: Thu, 06 Feb 2003 18:53:40 +0000
From: Asfand yar Qazi <f_ker@yahoo.co.uk_NO_SPAM>
Subject: Re: Some embedded Perl (ala libperl.a) questions...
Message-Id: <b1uaul$ue0$1@news7.svr.pol.co.uk>

Benjamin Goldberg wrote:
> Asfand yar Qazi wrote:
> 
>>I am using embedded Perl inside a game I'm developing (love that
>>Class::Classless...)
>>
>>I currently evaluate perl expressions inside a 'temporary' package to
>>avoid namespace pollution.  Which is good.  Problem is that when I
>>evaluate 'exit', my program exits!  How do I stop this behaviour?
> 
> 
> Either define a sub CORE::GLOBAL::exit, and make sure that your *actual*
> exit is called as CORE::exit, or define an exit sub in your temporary
> package, else use Safe.pm and evaluate the code inside a safe
> compartment which has the exit opcode disabled.

Safe.pm, huh?  I think I'll use that... many thanks.

> 
> Where are these perl expressions coming from, anyway?
> 

A 'console' (ala Quake '~' key)

> 
>>Also, how can I clean out the symbol table of a package after it has
>>been used?
> 
> 
>    use Symbol qw(delete_package);
> 

Many thanks once again.



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

Date: 6 Feb 2003 18:54:04 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: Splitting lines from a temporary buffer
Message-Id: <b1ub0c$7ej$1@mamenchi.zrz.TU-Berlin.DE>

Kevin Newman  <knewman00@earthlink.net> wrote in comp.lang.perl.misc:
> Hi all,
> 
> I'm trying to split lines from a temporary buffer.  The steps are:

First off, why do you want to do this?  Perl's line input does exactly
that, and it's far more efficient and robust than anything programmed
in Perl.

> 1. Read in a chunk of data to a buffer from a file
> 2. Split to some terminator
> 3. Then substitute nothing(?) using the value assigned from step 2
> 4. Refill the buffer with more data (code not shown)

That's no way to deal with a buffer.  You re-fill it for every line,
which is wasteful and contrary to its purpose.  You want to deliver
all complete lines that are in the buffer, then move the incomplete
line to the beginning and re-fill from that point.

You have a problem when a line is too long to fit in the buffer.

> But, when I try these steps the first line is split from the buffer then 
> the program loops until I hit control-C (see code below). My questions 
> are why does this not work and is there a better approach to creating a 
> "refillable" buffer.  Any suggestions?

[...]

> use strict;
> my $filename = $ARGV[0];
> my $terminator = qr/\015\012|[\015\012\000]/;

Ah, you want to allow multiple line-terminators.  Multi-byte ones too.
That's going to be hard.  What if the last byte of a buffer is "\015"
from a "\015\012" combination?  Your regex would get that wrong.
(Apart from the fact that you don't use it later on.)

There is usually a better way of dealing with multiple line terminators,
taking into account that a single file usually comes with only one type.
Look into IO-layers (or -disciplines, as they used to be called).

> open (DATAFILE, "$filename") || die "Could not open file $filename  $!\n";
> my	 $bytes_read = read( DATAFILE,  my $buffer , 5000 );
> while (1)

Well, this is an endless loop.  How did you expect to escape it?
It would make more sense to say "while ( $buffer )".

> {
> 	my ($line) = split (/\n/,$buffer);

This assigns to $line the first line in $buffer (if there is one).  The
other lines are thrown away.

> 	$buffer =~ s/\Q$line//;

Yikes.  This is a weird way of shortening a string.  The common way would
use substr() in one way or other.

    substr( $buffer, 0, length $line) = '';

(This being clpm, someone will now benchmark this and find that s/// is
faster.)

> 	print "$buffer";
> }

[data lines snipped]

I don't think it's worth while to do this in Perl.  If you really need
a regex as a line-terminator, I bet there's a module on CPAN.

Anno


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

Date: Thu, 06 Feb 2003 17:59:45 +0100
From: "Janek Schleicher" <bigj@kamelfreund.de>
Subject: Re: Strange behaviour using underscore "_" as a subroutine name
Message-Id: <pan.2003.02.06.16.28.09.398357@kamelfreund.de>

On Wed, 05 Feb 2003 12:58:02 +0000, Scripty wrote:

> But I'm sure the behaviour I'm seeing is wrong: "_" gets redefined in EVERY 
> module, whether I "use" my I18N module or not, and consequently any module 
> using cached stat structures, -e $file && -f _ && -T _ etc, fails 
> miserably. As I use File::Temp in a number of places this is clearly a no 
> go.

From perldoc -f -X:

               If any of the file tests (or either the "stat" or
               "lstat" operators) are given the special
               filehandle consisting of a solitary underline,
               then the stat structure of the previous file test
               (or stat operator) is used, saving a system call.
               (This doesn't work with "-t", and you need to
               remember that lstat() and "-l" will leave values
               in the stat structure for the symbolic link, not
               the real file.)  (Also, if the stat buffer was
               filled by a "lstat" call, "-T" and "-B" will reset
               it with the results of "stat _").  Example:

                   print "Can do.\n" if -r $a || -w _ || -x _;

                   stat($filename);
                   print "Readable\n" if -r _;
                   print "Writable\n" if -w _;
                   print "Executable\n" if -x _;
                   print "Setuid\n" if -u _;
                   print "Setgid\n" if -g _;
                   print "Sticky\n" if -k _;
                   print "Text\n" if -T _;
                   print "Binary\n" if -B _;


Cheerio,
Janek


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

Date: 6 Feb 2003 08:16:40 -0800
From: sherman.willden@hp.com (Sherman Willden)
Subject: Too many greps
Message-Id: <3a80d8d6.0302060816.7de0b873@posting.google.com>

I created a perl script to loop through a list of SourceSafe projects
and I am using the Windows Services for Unix grep command which
probably masks perl's grep. When I execute the program the grep.exe
process is using between 70% to 80% + cpu usage so I would like to get
rid of the greps if possible. Below is the line I am exeucting within
the code.

$PROJECTS=`\"$SSPath\" dir -R \$/MyProj | grep \"[\\\$]\" | grep
\"\/\" | grep -v \"^ \*\$\" | grep -v \"No items\" | grep -v grep`;

The first grep gets everything beginning with $, the second grep gets
the $/MyProj/one, the third grep gets rid of empty lines, the fourth
grep removes the last line which gives a count, and the last grep will
not return any null grep statements.

This gives me ...
$/MyProj
$/MyProj/one
$MyProj/one/two

I don't want $MyProj or $one or MyProj.java

I have tried just doing $SSPath dir -R $/MyProj and then separating
the result using something like @ModProj = (split /\$\/.:/,
$PROJECTS); and I get a list of things I don't want which may be a
good thing.

Thanks for your help;

Sherman L. Willden
(719)548-2852


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

Date: Thu, 06 Feb 2003 11:27:23 -0600
From: Jeff D Gleixner <glex_nospam@qwest.net>
Subject: Re: Too many greps
Message-Id: <9Uw0a.24$yr3.29056@news.uswest.net>

Sherman Willden wrote:
> I created a perl script to loop through a list of SourceSafe projects
> and I am using the Windows Services for Unix grep command which
> probably masks perl's grep. 

Since it's a backtick (`), it's the shell's grep executable, nuttin to do with 
Perl.

> When I execute the program the grep.exe
> process is using between 70% to 80% + cpu usage so I would like to get
> rid of the greps if possible. Below is the line I am exeucting within
> the code.
> 
> $PROJECTS=`\"$SSPath\" dir -R \$/MyProj | grep \"[\\\$]\" | grep
> \"\/\" | grep -v \"^ \*\$\" | grep -v \"No items\" | grep -v grep`;

Probably want to look at using File::Find, instead of the OS's dir & grep.

I'm sure you can get rid of the grep -v's, if you use other options to dir or
if you modify your grep to say lines starting with a '$'.

[...]

> I have tried just doing $SSPath dir -R $/MyProj and then separating
> the result using something like @ModProj = (split /\$\/.:/,
> $PROJECTS); and I get a list of things I don't want which may be a
> good thing.

If it's truly a list of everything you don't want, negate the pattern match.

If all that doesn't help, it may help to state exactly what pattern you're
looking for by showing the various lines of output and pointing out which
one's you're after.

See ya




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

Date: Thu, 6 Feb 2003 12:56:18 -0600
From: tadmc@augustmail.com (Tad McClellan)
Subject: Re: Too many greps
Message-Id: <slrnb45bui.ehv.tadmc@magna.augustmail.com>

Sherman Willden <sherman.willden@hp.com> wrote:

> I created a perl script to loop through a list of SourceSafe projects
> and I am using the Windows Services for Unix grep command which
> probably masks perl's grep. 


It does not mask Perl's grep.


> When I execute the program the grep.exe
> process is using between 70% to 80% + cpu usage so I would like to get
> rid of the greps if possible. Below is the line I am exeucting within
> the code.
> 
> $PROJECTS=`\"$SSPath\" dir -R \$/MyProj | grep \"[\\\$]\" | grep
> \"\/\" | grep -v \"^ \*\$\" | grep -v \"No items\" | grep -v grep`;


That line is useless to everyone except those who happen to have
SourceSafe and the same platform and the same projects.

We do not need to know where the data comes from.

We do need to know what the data is.

Why not just show us the data you want to filter and describe
how you want to filter it?

Then anybody would have what they need to answer your question.


> The first grep gets everything beginning with $, 

   while ( `\"$SSPath\" dir -R \$/MyProj` ) {
      next unless /^\$/;  # must start with dollar sign

But if I understand grep's args above, then your word description
does not match what that grep does, so maybe you want this instead:

      next unless /\$/;  # must contain a dollar sign

> the second grep gets
> the $/MyProj/one, 


Yes, but _why_ does it get (match) that?

      next unless m#/#;   # must contain a slash, I guess...

> the third grep gets rid of empty lines, 


Eh? If it must contain a dollar sign, then it is impossible for
it to be an empty line...



> Thanks for your help;


I give up.

Show us your data. Show us what output you expect for that data.


> Sherman L. Willden
> (719)548-2852


There are lots of kooks on the internet.

Giving them your phone number is probably not a good idea...


-- 
    Tad McClellan                          SGML consulting
    tadmc@augustmail.com                   Perl programming
    Fort Worth, Texas


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

Date: 6 Apr 2001 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Digest Administrivia (Last modified: 6 Apr 01)
Message-Id: <null>


Administrivia:

The Perl-Users Digest is a retransmission of the USENET newsgroup
comp.lang.perl.misc.  For subscription or unsubscription requests, send
the single line:

	subscribe perl-users
or:
	unsubscribe perl-users

to almanac@ruby.oce.orst.edu.  

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


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