[8486] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 2103 Volume: 8

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Sun Mar 15 16:07:40 1998

Date: Sun, 15 Mar 98 13:00:35 -0800
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Sun, 15 Mar 1998     Volume: 8 Number: 2103

Today's topics:
        All Perl prior to 5.004 is DANGEROUS (was Re: Perl4 vs  <merlyn@stonehenge.com>
        Cross product (Jack Applin)
    Re: File::Copy (Kent E. Holsinger)
    Re: File::Find and -w <uri@sysarch.com>
    Re: File::Find and -w (Kent E. Holsinger)
    Re: File::Find and -w <jdf@pobox.com>
    Re: File::Find and -w <uri@sysarch.com>
        globbing vs. opendir / readdir (Jeff Yoak)
    Re: globbing vs. opendir / readdir (I R A Aggie)
    Re: globbing vs. opendir / readdir <uri@sysarch.com>
    Re: globbing vs. opendir / readdir <chasecreek.systemhouse@usa.net>
    Re: IP address ban - can it work? (steve spinboll)
    Re: IP address ban - can it work? (A. Deckers)
    Re: IP address ban - can it work? <chasecreek.systemhouse@usa.net>
    Re: Is there a "Newsgroup" for Newbies to Perl? (John Stanley)
    Re: Is there a "Newsgroup" for Newbies to Perl? (Robert F. Harrison)
    Re: Is there a "Newsgroup" for Newbies to Perl? <chasecreek.systemhouse@usa.net>
        Large programs: is Perl up to it? <jll@skynet.be>
    Re: Listing subdirectories... <merlyn@stonehenge.com>
    Re: mkdir won't work... (steve spinboll)
        password protection for web site? (Geoff Cox)
    Re: Perl Win95 Sockets <ctrotto@trotto.com>
    Re: Perl Win95 Sockets <chasecreek.systemhouse@usa.net>
    Re: read/write file while locked (steve spinboll)
    Re: Reading excel files under Unix <zenin@archive.rhps.org>
    Re: Reference to a part of a hash? <rjk@coos.dartmouth.edu>
        Sets (collections) in Perl <jll@skynet.be>
        System ? (Keith)
    Re: System ? <dcameron@nospam.bcs.org.uk>
    Re: System ? <chasecreek.systemhouse@usa.net>
        Tied and blessed? <jll@skynet.be>
        Unloading subs? <jll@skynet.be>
    Re: Weak references? <jll@skynet.be>
    Re: You have 1 message(s) - how to print plurals? (Patrick)
        Digest Administrivia (Last modified: 8 Mar 97) (Perl-Users-Digest Admin)

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

Date: 15 Mar 1998 13:04:42 -0700
From: Randal Schwartz <merlyn@stonehenge.com>
To: creator@islandnet.com (Matt Elrod)
Subject: All Perl prior to 5.004 is DANGEROUS (was Re: Perl4 vs Perl 5)
Message-Id: <8clnuben51.fsf_-_@gadget.cscaper.com>

>>>>> "Matt" == Matt Elrod <creator@islandnet.com> writes:

Matt>  perl -v

Matt>  This is perl, version 4.0

Matt>  $RCSfile: perl.c,v $$Revision: 4.0.1.8 $$Date: 1993/02/05 19:39:30 $
Matt>  Patch level: 36
Matt>  + suidperl security patch

Matt> So, having determined that you have the suid security patch, is there any
Matt> reason not to use Perl4 for simple projects that do not require the full
Matt> functionality of Perl5?

The "suidperl security patch" fixes only one class of buffer overflow
problems that were found in 5.002, and fixed in 5.003 (with the patch
retrofitted to 4.036).  *Additional* buffer overflows were found in
5.003 during the 5.004 release cycle, and subsequently patched in
5.004.  THESE PATCHES were NOT backported to 4.036.  There exists NO
PATCHES to remove all known security holes in 4.036.

PLEASE STOP USING DEAD UNSUPPORTED KNOWN-SECURITY-BUGGY SOFTWARE.

If you are running *any* Perl prior to 5.004, you are subject to
attacks that a bad guy can derive rather trivially from publicly
available information (by diffing 5.003 with 5.004 and looking for the
buffer overflow fixes).  This means that your web *server* can be
taken hostage if you run CGI scripts.  Setuid scripts can be hijacked.
etc. etc. etc.  I've heard rumors of a "rootkit" that already does
this in an automated fashion given *any* CGI script on a
known-architecture webserver machine.

Geez.  How many times do we need to say this?

And because this has been said *publicly*, *repeatedly*, you are now
liable in court for a breakin if you are running 5.003 or earlier,
because you are not following "best practices".  Believe me, you don't
want to have to hassle with that in court. :-(

print "Just another Perl hacker," # but not what the media calls "hacker!" :-)
## legal fund: $20,990.69 collected, $186,159.85 spent; just 169 more days
## before I go to *prison* for 90 days; email fund@stonehenge.com for details

-- 
Name: Randal L. Schwartz / Stonehenge Consulting Services (503)777-0095
Keywords: Perl training, UNIX[tm] consulting, video production, skiing, flying
Email: <merlyn@stonehenge.com> Snail: (Call) PGP-Key: (finger merlyn@teleport.com)
Web: <A HREF="http://www.stonehenge.com/merlyn/">My Home Page!</A>
Quote: "I'm telling you, if I could have five lines in my .sig, I would!" -- me


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

Date: 15 Mar 1998 20:35:17 GMT
From: neutron@fc.hp.com (Jack Applin)
Subject: Cross product
Message-Id: <6ehe25$2a3@fcnews.fc.hp.com>

I've written a routine to calculate the cross product of two arrays
(that is, (a,b) x (c,d) is (ac,ad,bc,bd)).  I don't like how I've done it.
Can anybody suggest a snazzier implementation?  Perhaps something using
nested maps could be done.



				-Jack Applin
				 neutron@fc.hp.com
				 http://www.geocities.com/HotSprings/6789/


#! /bin/perl -wl

@c = cross(['a','b'], [1,2,3]);

print "cross product is @c";
# Expected: a1 a2 a3 b1 b2 b3

sub cross($$) {
	my $aref = shift;
	my $bref = shift;
	my @result = ();

	for my $a (@$aref) {
		for my $b (@$bref) {
			push @result, $a.$b;
		}
	}
	return @result;
}


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

Date: 15 Mar 1998 14:30:33 -0500
From: kent@darwin.eeb.uconn.edu (Kent E. Holsinger)
Subject: Re: File::Copy
Message-Id: <87n2erah0m.fsf@darwin.eeb.uconn.edu>

Take a look at the messages in the thread on File::Find and -w. I
didn't see anything in a perldoc File::Copy, but File::Find gives a
similar warning if $_ is changed in a user-defined function. I
originally had a line like

   while (<FILE>) 

in my code. This is equivalent to

   while ( defined($_ = <FILE>) )

so $_ was being redefined. When I changed it to

   while ( defined($line = <FILE>) )

everything worked like a charm.

Kent

-- 
Kent E. Holsinger                Kent@Darwin.EEB.UConn.Edu
                                 http://darwin.eeb.uconn.edu
-- Department of Ecology & Evolutionary Biology          
-- University of Connecticut, U-43                                       
-- Storrs, CT   06269-3043                                               


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

Date: 15 Mar 1998 14:07:01 -0500
From: Uri Guttman <uri@sysarch.com>
To: kent@darwin.eeb.uconn.edu (Kent E. Holsinger)
Subject: Re: File::Find and -w
Message-Id: <x7afarydre.fsf@sysarch.com>

kent@darwin.eeb.uconn.edu (Kent E. Holsinger) writes:

> >>>>> "Martin" == Martin Vorlaender <martin@RADIOGAGA.HARZ.DE> writes:
> 
> Am I correct in inferring that the problem is that the while (<FILE>)
> loop resets $_? Rewriting mygrep() as follows eliminates the warning,
> but I want to make sure that I understand why.
> 
>    sub mygrep {
>        my $store = $_;
>        my ($pattern, $name) = @_;
>        open (FILE, "<$name") or die "Could not open $name for input: $!";
>        while ( <FILE> ) {
>            print "$name:$_" if /$pattern/oi;

this assigns the next line in FILE to $_, hence the OVERwriting of $_
you saw. it would be cleaner to do this:

        while ( defined( $line = <FILE> ) ) {

            print "$name:$line" if $line =~ /$pattern/oi;

and declare $line with my instead of store. then delete the $store code.

>        }
>        close (FILE);
>        $_ = $store;
>    }
> 
> I'd also appreciate comments on whether there's a way to avoid
> resetting $_ completely.  Thanks.

this is one reason for staying away from using $_ in implied
situations. i do it both ways but i tend away from $_ in explicit loops
you must understand when you can't use implied $_. it can bite you
especially newbies, i recommend you stay away from it in general until
you become more experienced and know the pitfalls. using explicit vars
instead of implied $_ is a good thing for newbies (IMHO).

uri

-- 
Uri Guttman                     SYStems ARCHitecture and Software Engineering
uri@sysarch.com                                          Have Perl, Will Hack
http://www.sysarch.com                (781) 643-7504 x*2  FAX: (781) 643-2710
Try the Best Search Engine on the Net -------->  http://www.northernlight.com


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

Date: 15 Mar 1998 14:25:22 -0500
From: kent@darwin.eeb.uconn.edu (Kent E. Holsinger)
Subject: Re: File::Find and -w
Message-Id: <87ogz7ah99.fsf@darwin.eeb.uconn.edu>

>>>>> "Jonathan" == Jonathan Feinberg <jdf@pobox.com> writes:

    >> sub mygrep { my $store = $_;
    Jonathan> [snip]
    >> $_ = $store; }

    Jonathan> Too much typing!  Not good!

    Jonathan>     sub mygrep { local $_; #save $_ # do stuff to $_ }
    Jonathan> #when you exit this block, $_ is restored

Uri Guttman's approach, i.e., 

    while ( defined($line = <FILE>) ) {
        print "$name:$line" if $line =~ /$pattern/oi;
    }

which doesn't change $_ seems even cleaner to me. Are there any
disadvantages?

Kent
    
-- 
Kent E. Holsinger                Kent@Darwin.EEB.UConn.Edu
                                 http://darwin.eeb.uconn.edu
-- Department of Ecology & Evolutionary Biology          
-- University of Connecticut, U-43                                       
-- Storrs, CT   06269-3043                                               


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

Date: 15 Mar 1998 14:55:19 -0500
From: Jonathan Feinberg <jdf@pobox.com>
Subject: Re: File::Find and -w
Message-Id: <lnub20go.fsf@news.concentric.net>

kent@darwin.eeb.uconn.edu (Kent E. Holsinger) writes:

> Uri Guttman's approach, i.e., 
> 
>     while ( defined($line = <FILE>) ) {
>         print "$name:$line" if $line =~ /$pattern/oi;
>     }
> 
> which doesn't change $_ seems even cleaner to me. Are there any
> disadvantages?

TMTOWTDI.  Whichever tickles you.

-- 
Jonathan Feinberg   jdf@pobox.com   Sunny Brooklyn, NY


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

Date: 15 Mar 1998 15:08:22 -0500
From: Uri Guttman <uri@sysarch.com>
To: kent@darwin.eeb.uconn.edu (Kent E. Holsinger)
Subject: Re: File::Find and -w
Message-Id: <x7g1kjlnt5.fsf@sysarch.com>

kent@darwin.eeb.uconn.edu (Kent E. Holsinger) writes:

> >>>>> "Jonathan" == Jonathan Feinberg <jdf@pobox.com> writes:
> 
>     >> sub mygrep { my $store = $_;
>     Jonathan> [snip]
>     >> $_ = $store; }
> 
>     Jonathan> Too much typing!  Not good!
> 
>     Jonathan>     sub mygrep { local $_; #save $_ # do stuff to $_ }
>     Jonathan> #when you exit this block, $_ is restored
> 
> Uri Guttman's approach, i.e., 
> 
>     while ( defined($line = <FILE>) ) {
>         print "$name:$line" if $line =~ /$pattern/oi;
>     }
> 
> which doesn't change $_ seems even cleaner to me. Are there any
> disadvantages?

as always in perl, there is more than one way to do it. you decide on
the basis of your style, understanding, speed ($_ is slightly faster i
believe), etc.

uri

-- 
Uri Guttman                     SYStems ARCHitecture and Software Engineering
uri@sysarch.com                                          Have Perl, Will Hack
http://www.sysarch.com                (781) 643-7504 x*2  FAX: (781) 643-2710
Try the Best Search Engine on the Net -------->  http://www.northernlight.com


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

Date: Sun, 15 Mar 1998 18:40:33 GMT
From: jeff@yoak.com (Jeff Yoak)
Subject: globbing vs. opendir / readdir
Message-Id: <6eh7m7$jmt@dfw-ixnews10.ix.netcom.com>


When should one use globbing as against readdir and vice versa?  For
applications I can think of, it seems trivial to emulate the behavior
of one with the other, perhaps with a little outside help.

E.g.

@contents = </some/dir/*>;

opendir(DIR,'/some/dir') || die "Can't open directory $!";
@contents = readdir(DIR);
closedir(DIR);

--

@contents = </some/dir/x*>;

opendir(DIR,'/some/dir') || die "Can't open directory $!";
@contents = grep /^x/, readdir(DIR);
closedir(DIR);


I understand that the former is calling csh and letting it do the
expansion and the latter is calling library functions, but from the
programmer's perspective is there sometimes a basis for preferring one
to the other or is this a case of different WTDI being available for
those with different backgrounds who tend to think along one line or
the other?

Cheers,
Jeff

-------------------------------
Jeff Yoak         jeff@yoak.com



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

Date: Sun, 15 Mar 1998 14:03:36 -0500
From: fl_aggie@thepentagon.com (I R A Aggie)
Subject: Re: globbing vs. opendir / readdir
Message-Id: <fl_aggie-1503981403370001@aggie.coaps.fsu.edu>

In article <6eh7m7$jmt@dfw-ixnews10.ix.netcom.com>, jeff@yoak.com (Jeff
Yoak) wrote:

+ @contents = </some/dir/x*>;
+ 
+ opendir(DIR,'/some/dir') || die "Can't open directory $!";
+ @contents = grep /^x/, readdir(DIR);
+ closedir(DIR);

+ I understand that the former is calling csh and letting it do the
+ expansion and the latter is calling library functions, but from the
+ programmer's perspective is there sometimes a basis for preferring one
+ to the other or is this a case of different WTDI being available for
+ those with different backgrounds who tend to think along one line or
+ the other?

Try doing the glob expansion against a list of files greater than, oh,
about 1000. Most shell expansions fail, and shell scripts have to go
to using xargs or find.

The opendir/readdir way should be able to handle this, no sweat. Hmmm.
A test:

% ls -a1 | wc -l
          1394
[note the lack of a * glob]

% perl
opendir(DIR,".") or die $!;
@files=readdir(DIR);
$files=$#files+1; # remember, perl starts at 0 for array elements...
print "Number of files are: $files\n";
closedir(DIR);
^D
Number of files are: 1394

% ls *.mpg
zsh: arg list too long: ls

Whoops.

James

-- 
Consulting Minister for Consultants, DNRC
The Bill of Rights is paid in Responsibilities - Jean McGuire
To cure your perl CGI problems, please look at:
<url:http://www.perl.com/CPAN-local/doc/FAQs/cgi/idiots-guide.html>


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

Date: 15 Mar 1998 15:06:10 -0500
From: Uri Guttman <uri@sysarch.com>
To: jeff@yoak.com
Subject: Re: globbing vs. opendir / readdir
Message-Id: <x7iupflnwt.fsf@sysarch.com>

fl_aggie@thepentagon.com (I R A Aggie) writes:

> In article <6eh7m7$jmt@dfw-ixnews10.ix.netcom.com>, jeff@yoak.com (Jeff
> Yoak) wrote:
> 
> + I understand that the former is calling csh and letting it do the
> + expansion and the latter is calling library functions, but from the
> + programmer's perspective is there sometimes a basis for preferring one
> + to the other or is this a case of different WTDI being available for
> + those with different backgrounds who tend to think along one line or
> + the other?

readdir is much faster since you don't use a subprocess and the results
are unsorted (shell's sort their glob output). also readdir output can
be greped using perl's regex while shell globs have very weak regex like
expansions. but you can always perl grep the output of a glob too.

but be careful, in your original code you had a path prefix. readdir
DOES NOT return file names with the prefix. if you try to open those
files and you have not prepended the path or cd'ed to the parent dir,
the files won't open.

> % perl
> opendir(DIR,".") or die $!;
> @files=readdir(DIR);
> $files=$#files+1; # remember, perl starts at 0 for array elements...

this is better. also it is confusing (IMHO) to use the same name for
scalars and arrays in such close proximity. $num_files is a beter choice.
$files = @files

> print "Number of files are: $files\n";
> closedir(DIR);

uri

-- 
Uri Guttman                     SYStems ARCHitecture and Software Engineering
uri@sysarch.com                                          Have Perl, Will Hack
http://www.sysarch.com                (781) 643-7504 x*2  FAX: (781) 643-2710
Try the Best Search Engine on the Net -------->  http://www.northernlight.com


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

Date: Sun, 15 Mar 1998 20:34:35 GMT
From: Sneex <chasecreek.systemhouse@usa.net>
Subject: Re: globbing vs. opendir / readdir
Message-Id: <350C3A0C.E95C1EA4@usa.net>

Also I believe that once the 'shell' is invoked this way, taint checking
fails?

/^Pretty sure$/;
Sneex :)

Jeff Yoak wrote:

> When should one use globbing as against readdir and vice versa?  For
> applications I can think of, it seems trivial to emulate the behavior
> of one with the other, perhaps with a little outside help.
>
> E.g.
>
> @contents = </some/dir/*>;
>
> opendir(DIR,'/some/dir') || die "Can't open directory $!";
> @contents = readdir(DIR);
> closedir(DIR);
>
> Cheers,
> Jeff
>
> -------------------------------
> Jeff Yoak         jeff@yoak.com





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

Date: Sun, 15 Mar 1998 18:49:59 GMT
From: spinboll@hotmail.com (steve spinboll)
Subject: Re: IP address ban - can it work?
Message-Id: <350c22cd.11068044@news.cent.com>

yes it can

On Thu, 12 Mar 1998 17:30:32 -0500, Slash <slash@slashsworld.com>
wrote:

>I am wondering if it's possible to ban an IP mask using perl.
>What I am looking to do is possibly have a script executed on my main
>page <-exec cgi="myscript.pl"> that will scan the user's IP address, and
>if they are from let's say 199.176.169.(port) it will give them an
>access denied message.
>
>Can this be done?  I know there are system variables that show like the
>user's browser, and IP, but can one be used specificly with the IP
>variable to detect if they are from any of their hosts using a mask?  If
>anyone knows, or could take a second to give me some code I would
>appreciate it.
>
>Thanks.
>
>Slash
>
>-- 
>  _________.__                .__     
> /   _____/|  | _____    _____|  |__  
> \_____  \ |  | \__  \  /  ___/  |  \ 
> /        \|  |__/ __ \_\___ \|   Y  \
>/_______  /|____(____  /____  >___|  /
>        \/           \/     \/     \/ 
>>--+---+---+---+---+---+---+---+---+--<
>       slash@slashsworld.com
>    http://www.slashsworld.com/
>          ICQ#: 2546177
>>--+---+---+---+---+---+---+---+---+--<



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

Date: 15 Mar 1998 19:07:04 GMT
From: Alain.Deckers@man.ac.uk (A. Deckers)
Subject: Re: IP address ban - can it work?
Message-Id: <slrn6go9mn.lep.Alain.Deckers@bashful.rediris.es>

In <35086208.483FAEC5@slashsworld.com>,
	Slash <slash@slashsworld.com> wrote:
>I am wondering if it's possible to ban an IP mask using perl.
>What I am looking to do is possibly have a script executed on my main
>page <-exec cgi="myscript.pl"> that will scan the user's IP address, and
>if they are from let's say 199.176.169.(port) it will give them an
>access denied message.

They can bypas the ban by going through a proxy.

followups set to ciwac.

Alain
-- 
Perl reference: <URL:http://reference.perl.com/>
 Perl language: <URL:http://language.perl.com/>
  Perl archive: <URL:http://www.perl.com/CPAN/>
      Perl FAQ: <URL:http://www.perl.com/CPAN/doc/FAQs/FAQ/>


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

Date: Sun, 15 Mar 1998 20:38:23 GMT
From: Sneex <chasecreek.systemhouse@usa.net>
Subject: Re: IP address ban - can it work?
Message-Id: <350C3AF0.E8800209@usa.net>

I missed the original post - sorry Steve;

Anyways, M[rs] Slash, instead of an IP address ban, how about an IP
range to allow?  Using HTTP_REFERRER...

See CGI.pm and realted docs for more on this subjetc...

/^HTH$/;
Sneex :)
PS - I'm a boy Sneex :D


steve spinboll wrote:

> yes it can
>
> On Thu, 12 Mar 1998 17:30:32 -0500, Slash <slash@slashsworld.com>
> wrote:
>
> >I am wondering if it's possible to ban an IP mask using perl.
> >What I am looking to do is possibly have a script executed on my main
> >page <-exec cgi="myscript.pl"> that will scan the user's IP address, and
> >if they are from let's say 199.176.169.(port) it will give them an
> >access denied message.
> >
> >Can this be done?  I know there are system variables that show like the
> >user's browser, and IP, but can one be used specificly with the IP
> >variable to detect if they are from any of their hosts using a mask?  If
> >anyone knows, or could take a second to give me some code I would
> >appreciate it.
> >
> >Thanks.
> >
> >Slash
> >
> >--
> >  _________.__                .__
> > /   _____/|  | _____    _____|  |__
> > \_____  \ |  | \__  \  /  ___/  |  \
> > /        \|  |__/ __ \_\___ \|   Y  \
> >/_______  /|____(____  /____  >___|  /
> >        \/           \/     \/     \/
> >>--+---+---+---+---+---+---+---+---+--<
> >       slash@slashsworld.com
> >    http://www.slashsworld.com/
> >          ICQ#: 2546177
> >>--+---+---+---+---+---+---+---+---+--<





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

Date: 15 Mar 1998 18:33:20 GMT
From: stanley@skyking.OCE.ORST.EDU (John Stanley)
Subject: Re: Is there a "Newsgroup" for Newbies to Perl?
Message-Id: <6eh6tg$t2d$1@news.orst.edu>

In article <6egr59$6t2$1@gaia.ns.utk.edu>,
Bob Gwynne <gwynne@utkux.utk.edu> wrote:
>because they don^Rt know the rules, e.g., ^SNewbie needs help 

Another group should be added to the list of "flame to toast": those who
embed control characters in their articles, especially XOFF.




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

Date: 15 Mar 98 04:35:03 GMT
From: harrison@pixi.com (Robert F. Harrison)
Subject: Re: Is there a "Newsgroup" for Newbies to Perl?
Message-Id: <slrn6gmmil.62g.harrison@localhost.localdomain>

On Sat, 14 Mar 1998 11:08:55 -0600, Mark Stackhouse <stackhou@execpc.com> wrote:
> 
> But first get yourself a grammar and a spelling book; you really need
> it.  It's ok to be a little lazy at the keyboard within the confines
> of the social etiquette applicible to your audience, but taken to your
> extreme it's simply insulting and annoying.  Express yourself in an
> intelligent and respectful manner and you're liable to fool folks into
> believing that you actually are intelligent and deserving of respect.
> This lesson in life is probably off topic here, but so was your
> request for information, so deal with it.

Mr. Stackhouse, allow me to quote RFC 1855 on Netiquette:

>From Section 3.1 User Guidelines
     3.1.1 General Guidelines for mailing lists and NetNews

* Messages and articles should be brief and to the point. Don't
  wander off-topic, don't ramble and don't send mail or post
  messages solely to point out other people's errors in typing or
  spelling. These, more than any other behavior, mark you as an
  immature beginner.


The entire RFC is available at a host of locations including:

       http://ds.internic.net/rfc/rfc1855.txt

Should that location be unavailable a simple search on any search
engine should find any number of copies.


-- 
rfh harrison@pixi.com



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

Date: Sun, 15 Mar 1998 20:26:57 GMT
From: Sneex <chasecreek.systemhouse@usa.net>
Subject: Re: Is there a "Newsgroup" for Newbies to Perl?
Message-Id: <350C3842.4DE1EBF9@usa.net>

They prolly won't  :D
But I will learn something in the process of making it.

If the system were set up like a search engine with examples like -

How do I pad?  And the search engine spouts back -
$outLine .= '.' x ((split(/:/,$fieldHeader[$z++]))[3] - length($dataLine));
With a sprinkling of whys and FAQ/Doc references - who could  ...

Never mind...

I feel more may use it if for no other reason than lazy code theft...


But no, you are right :)
Sneex :)



I R A Aggie wrote:

> In article <350BFAFF.E8351C08@usa.net>, sneaker@earthling.net wrote:
>
> + OK :)  I believe we are back to the cookbook venue (I could
> + have sworn this was suggested before.)
>
> And if the newbies won't read the damn FAQ, what makes you think they'll
> read this cookbook of yours?
>
> James
>
> --
> Consulting Minister for Consultants, DNRC
> The Bill of Rights is paid in Responsibilities - Jean McGuire
> To cure your perl CGI problems, please look at:
> <url:http://www.perl.com/CPAN-local/doc/FAQs/cgi/idiots-guide.html>





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

Date: Sun, 15 Mar 1998 21:52:06 +0100
From: Jean-Louis Leroy <jll@skynet.be>
Subject: Large programs: is Perl up to it?
Message-Id: <VA.00000008.00eae539@enterprise>

Hello,

I have been using Perl for two years now, but mostly as a text 
cruncher. Recently I have began seriously exploring the rest o fthe 
language (especially OO) and I'm impressed to see how 
(mostly) everything falls in place.

Is it possible to write *large* apps in Perl? Hundreds of classes, 
hundreds of screens, 10,000s lines of code? If not now, someday? Has 
any of you actual experience with this?

jl



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

Date: 15 Mar 1998 13:10:31 -0700
From: Randal Schwartz <merlyn@stonehenge.com>
To: Randall Stephenson <tjbtech@rtweb.net>
Subject: Re: Listing subdirectories...
Message-Id: <8chg4zemvc.fsf@gadget.cscaper.com>

>>>>> "Randall" == Randall Stephenson <tjbtech@rtweb.net> writes:

Randall> I am trying to create an array that contains all of the subdirectories
Randall> of a given directory.  Here is how I have tried so far:

[snip]

    use File::Find;
    @subdirs = ();
    find sub {
	    push @subdirs, $File::Find::name if $_ ne "." and -d;
    }, "given/directory/goes/here";

print "Just another Perl hacker," # but not what the media calls "hacker!" :-)
## legal fund: $20,990.69 collected, $186,159.85 spent; just 169 more days
## before I go to *prison* for 90 days; email fund@stonehenge.com for details

-- 
Name: Randal L. Schwartz / Stonehenge Consulting Services (503)777-0095
Keywords: Perl training, UNIX[tm] consulting, video production, skiing, flying
Email: <merlyn@stonehenge.com> Snail: (Call) PGP-Key: (finger merlyn@teleport.com)
Web: <A HREF="http://www.stonehenge.com/merlyn/">My Home Page!</A>
Quote: "I'm telling you, if I could have five lines in my .sig, I would!" -- me


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

Date: Sun, 15 Mar 1998 19:00:48 GMT
From: spinboll@hotmail.com (steve spinboll)
Subject: Re: mkdir won't work...
Message-Id: <350e253c.11695662@news.cent.com>

mkdir $dir, 0777;
system("chmod 777 $dline");





On Sat, 14 Mar 1998 12:55:46 -0500, Randall Stephenson
<tjbtech@rtweb.net> wrote:

>I have tried both commands such as `mkdir [dir]` and mkdir($dir,0777),
>but nothing will create a directory on the server through a script.
>What seems strange to me is that no error is returned.  The script
>appears to work, but the directory isn't on the server when I check.  I
>have consulted the SA of my provider to ask if it could be a security
>problem - apparently not...  Any ideas???
>



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

Date: Thu, 12 Mar 1998 07:49:07 GMT
From: geoff.cox@cableinet.co.uk (Geoff Cox)
Subject: password protection for web site?
Message-Id: <3507927e.267046@news.cableinet.co.uk>

Hello,

How doe I go about making my web site password protected? - and indeed
does it work?? Cann't anyone just get to a page "beyond" the password
protected page???

Grateful for some info...

An email copy would be appreciated...

Cheers

Geoff


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

Date: Sun, 15 Mar 1998 13:45:09 -0600
From: "carl m. trotto jr." <ctrotto@trotto.com>
Subject: Re: Perl Win95 Sockets
Message-Id: <350C2FC3.A1BE677@trotto.com>


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

Sorry about that code mess, but here is the code cleaned up.  Doesn't work.
Any ideas.

Thanks,
Carl

use Socket;

$sockaddr = 'S n a4 x8';
$msg = "\x7F\x7F\x7F\x7Fstatus\n\x0\x0\x0\x0\x0\x0\x0\x0\x0";

select(S); $| = 1; select(STDOUT);

$port  = 27910;
$proto = (getprotobyname('udp'))[2];

$thisaddr = pack("C4", split(/\./, "207.229.151.54"));
$thataddr = pack("C4", split(/\./, "208.155.203.2"));

socket(S, AF_INET, SOCK_DGRAM, $proto) || die "socket: $!";
select(S); $| = 1; select(STDOUT);

hd($msg );

$that = sockaddr_in($port, $thataddr);
send(S, $msg, 0, $that);

read(S, $buf, 1024, 0);


################################################################################

#
# First attempt
#
################################################################################

$this = pack($sockaddr, AF_INET, 0, INADDR_ANY);
$that = pack($sockaddr, AF_INET, $port, $thataddr);


bind(S, $this)   || die "bind $!";
connect(S,$that) || die "connect $!";

send(S, $msg, 0);

#while(<S>) {
#   print;
#}
read(S, $buf, 1024, 0);


################################################################################

#
# Hex dump routine
#
################################################################################

sub hd {
   local($buf) = pop(@_);
   local($len, $data, @array);

   $len = length($buf);

   while(int($len/16) != 0 ) {
      $data = substr($buf, $offset, 16);

      @array = unpack('N4', $data);
      $data =~ tr/\0-\x1F\x7F-\xFF/./;
      printf("%8.8lx    %8.8lx %8.8lx %8.8lx %8.8lx    %s\n", $offset,
@array, $data);
      $offset += 16;
      $len -= 16;
   }

   if($len != 0 ) {
      $data = substr($buf, $offset, $len);

      @array = unpack('C*', $data);
      $data =~ tr/\0-\x1F\x7F-\xFF/./;
      for(@array ) {
         $_ = sprintf('%2.2x', $_);
      }
      push(@array, '  ') while $len++ < 16;
      $data =~ s/[^ -~]/./g;
      printf("%8.8lx    ", $offset);
      printf("%s%s%s%s %s%s%s%s %s%s%s%s %s%s%s%s    %s\n", @array, $data);
   }
}




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

<HTML>
<TT>Sorry about that code mess, but here is the code cleaned up.&nbsp;
Doesn't work.&nbsp; Any ideas.</TT><TT></TT>

<P><TT>Thanks,</TT>
<BR><TT>Carl</TT><TT></TT>

<P><TT>use Socket;</TT><TT></TT>

<P><TT>$sockaddr = 'S n a4 x8';</TT>
<BR><TT>$msg = "\x7F\x7F\x7F\x7Fstatus\n\x0\x0\x0\x0\x0\x0\x0\x0\x0";</TT><TT></TT>

<P><TT>select(S); $| = 1; select(STDOUT);</TT><TT></TT>

<P><TT>$port&nbsp; = 27910;</TT>
<BR><TT>$proto = (getprotobyname('udp'))[2];</TT><TT></TT>

<P><TT>$thisaddr = pack("C4", split(/\./, "207.229.151.54"));</TT>
<BR><TT>$thataddr = pack("C4", split(/\./, "208.155.203.2"));</TT><TT></TT>

<P><TT>socket(S, AF_INET, SOCK_DGRAM, $proto) || die "socket: $!";</TT>
<BR><TT>select(S); $| = 1; select(STDOUT);</TT><TT></TT>

<P><TT>hd($msg );</TT><TT></TT>

<P><TT>$that = sockaddr_in($port, $thataddr);</TT>
<BR><TT>send(S, $msg, 0, $that);</TT><TT></TT>

<P><TT>read(S, $buf, 1024, 0);</TT>
<BR><TT></TT>&nbsp;<TT></TT>

<P><TT>################################################################################</TT>
<BR><TT>#</TT>
<BR><TT># First attempt</TT>
<BR><TT>#</TT>
<BR><TT>################################################################################</TT>
<BR><TT>$this = pack($sockaddr, AF_INET, 0, INADDR_ANY);</TT>
<BR><TT>$that = pack($sockaddr, AF_INET, $port, $thataddr);</TT>
<BR><TT></TT>&nbsp;<TT></TT>

<P><TT>bind(S, $this)&nbsp;&nbsp; || die "bind $!";</TT>
<BR><TT>connect(S,$that) || die "connect $!";</TT><TT></TT>

<P><TT>send(S, $msg, 0);</TT><TT></TT>

<P><TT>#while(&lt;S>) {</TT>
<BR><TT>#&nbsp;&nbsp; print;</TT>
<BR><TT>#}</TT>
<BR><TT>read(S, $buf, 1024, 0);</TT>
<BR><TT></TT>&nbsp;<TT></TT>

<P><TT>################################################################################</TT>
<BR><TT>#</TT>
<BR><TT># Hex dump routine</TT>
<BR><TT>#</TT>
<BR><TT>################################################################################</TT>
<BR><TT>sub hd {</TT>
<BR><TT>&nbsp;&nbsp; local($buf) = pop(@_);</TT>
<BR><TT>&nbsp;&nbsp; local($len, $data, @array);</TT><TT></TT>

<P><TT>&nbsp;&nbsp; $len = length($buf);</TT><TT></TT>

<P><TT>&nbsp;&nbsp; while(int($len/16) != 0 ) {</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $data = substr($buf, $offset, 16);</TT><TT></TT>

<P><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @array = unpack('N4', $data);</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $data =~ tr/\0-\x1F\x7F-\xFF/./;</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%8.8lx&nbsp;&nbsp;&nbsp;
%8.8lx %8.8lx %8.8lx %8.8lx&nbsp;&nbsp;&nbsp; %s\n", $offset, @array, $data);</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $offset += 16;</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $len -= 16;</TT>
<BR><TT>&nbsp;&nbsp; }</TT><TT></TT>

<P><TT>&nbsp;&nbsp; if($len != 0 ) {</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $data = substr($buf, $offset, $len);</TT><TT></TT>

<P><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @array = unpack('C*', $data);</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $data =~ tr/\0-\x1F\x7F-\xFF/./;</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(@array ) {</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $_ = sprintf('%2.2x',
$_);</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push(@array, '&nbsp; ') while $len++
&lt; 16;</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $data =~ s/[^ -~]/./g;</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%8.8lx&nbsp;&nbsp;&nbsp;
", $offset);</TT>
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%s%s%s%s %s%s%s%s %s%s%s%s
%s%s%s%s&nbsp;&nbsp;&nbsp; %s\n", @array, $data);</TT>
<BR><TT>&nbsp;&nbsp; }</TT>
<BR><TT>}</TT>
<BR><TT></TT>&nbsp;
<BR>&nbsp;
<BR>&nbsp;</HTML>

--------------B9A6E8ECECDE532EF35E1E03--



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

Date: Sun, 15 Mar 1998 20:47:08 GMT
From: Sneex <chasecreek.systemhouse@usa.net>
Subject: Re: Perl Win95 Sockets
Message-Id: <350C3CFD.AC5B14C0@usa.net>

Trade you your code for this code?

# We have a valid remote host -- Let's make the socket call...
socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or &socketError("Cannot
Create Socket $!");
my($packFormat) = 'S n a4 x8'; # Win95?, (a or c) per SunOS 5.4+
(Solaris 2) specifications...
connect(SOCKET, pack($packFormat, AF_INET(), $port, $serverAddr)) or
&socketError("Cannot Connect $!");
send(SOCKET, $xPair, 0);     # Send the data, and
recv(SOCKET, $buffer, 9, 0); # Get a response!?!
close(SOCKET);


/^HTH$/;
Sneex :)

carl m. trotto jr. wrote:

>  Sorry about that code mess, but here is the code cleaned up.  Doesn't
> work.  Any ideas.
>





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

Date: Sun, 15 Mar 1998 18:51:46 GMT
From: spinboll@hotmail.com (steve spinboll)
Subject: Re: read/write file while locked
Message-Id: <350d231b.11145707@news.cent.com>

You dont lock that file, use lock to create a new file and delete it
when you are finished with the original file

On Thu, 12 Mar 1998 18:41:18 -0800, Greg Chun
<gchun@anim.dreamworks.com> wrote:

>I seem to be in quite a spot here.  I have a file that just contains a
>single line with a four-digit number.  I'm hoping to use this as a
>sequence number for a unique identifier field in a database.  Now, the
>problem is, when I "select" from this sequence, I need to open the file,
>flock it, read the current value, and then somehow increment the value
>in the file without breaking the lock.  I could open the file for read,
>get the current value, and then close it and reopen it for write, but
>the first close blows away the lock.  The whole open +> seems to blow
>away the value before I can even read it.  And I believe using temp
>files will also mess up the locking.  Anyone have any wonderful ideas?
>=)
>------------------------
>Greg Chun
>DreamWorks SKG
>gchun@anim.dreamworks.com 
>(818) 695-6727



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

Date: 15 Mar 1998 18:10:38 GMT
From: Zenin <zenin@archive.rhps.org>
Subject: Re: Reading excel files under Unix
Message-Id: <889985807.169774@thrush.omix.com>

[posted & mailed]

Tom <nelson24@insight.att.com> wrote:
: I am looking for a module or any information that may be helpful
: for reading MS excel files with perl on Unix systems.

	Check out the Text::CSV module at your local CPAN.  The files
	will have to have been saved in "text" or "CSV" (Comma Seperated
	Values) format, pure "Excel" won't work.  This module can also
	create CSV files that Excel can read. -Note however that only
	values are available in CSV format, any and all "Excel" formatting
	embeded math, et al will not be available.

	You could write a module to parse pure Excel files, but I think
	you'd have much more fun lying on train tracks. :-)

-- 
-Zenin
 zenin@archive.rhps.org


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

Date: Sun, 15 Mar 1998 13:48:32 -0500
From: Ronald J Kimball <rjk@coos.dartmouth.edu>
To: John Goerzen <jgoerzen@southwind.net>
Subject: Re: Reference to a part of a hash?
Message-Id: <350C2281.AFA6CC1F@coos.dartmouth.edu>

[posted and mailed]

John Goerzen wrote:
> 
> I am wanting to create a reference to an entity in a hash...  For
> instance...
> 
> %hash = ('asdf' => 'qwerty');
> 
> $ref = \{$hash{asdf}};
> 
> However, this doesn't work.  Any idea how to do this?

In that context, the outer curly braces are being interpreted as an anonymous
hash composer, which is definitely not what you want.

Have you tried it without those braces?  That seems to work for me, creating a
reference to the value of $hash{asdf}.

Perhaps by entity you meant the 'key/value pair'.  I don't know how to get a
reference to that, or if you even can.  But I'm also not sure why you'd want
to.  You could use a ref to the entire hash and a variable containing the
specific key.

-- 
 _ / '  _      /         - aka -             rjk@coos.dartmouth.edu
( /)//)//)(//)/(    Ronald J. Kimball           chipmunk@m-net.arbornet.org
    /                                   http://www.ziplink.net/~rjk/
        "It's funny 'cause it's true ... and vice versa."


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

Date: Sun, 15 Mar 1998 21:52:19 +0100
From: Jean-Louis Leroy <jll@skynet.be>
Subject: Sets (collections) in Perl
Message-Id: <VA.00000009.00eb1af9@enterprise>

Hello,

I need the Perl equivalent of a Smalltalk Set (or C++ std::set<>), i.e. 
a collection that doesn't create duplicates if you enter the same 
element twice.

I could do it with an array; not efficient when it's large.

Or with a hash, but I need to store references in my set. I suppose I 
could do something like:

    $set{$val} = $val; # store 'SCALAR(0x???)' => SCALAR(0x???)
    foreach $element (values %set) { ...
    
Is there a better way?

jl



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

Date: Sun, 15 Mar 1998 18:38:21 GMT
From: barberk3@pilot.msu.edu (Keith)
Subject: System ?
Message-Id: <350c13d7.921284034@nntp.msu.edu>

Does anyone know how to use the system command to change a directory?

I'm using perl5 and I need to move to another directory.  I've tried
using: 
system("cd, public_html");
 where public_html is a vaild directory, but for some reason when I
run my script at the prompt it stays in the same dir.  

Any suggestions?



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

Date: 15 Mar 1998 19:52:21 GMT
From: "Duncan Cameron" <dcameron@nospam.bcs.org.uk>
Subject: Re: System ?
Message-Id: <01bd504b$bd3e7c00$2d2c63c3@dns.btinternet.com>

Why do you need to use the system command?  Just do

chdir 'public_html' or die "Cannot change dir $ERRNO\n";

HTH
-- 
Remove 'nospam.' to get my return address.

Keith <barberk3@pilot.msu.edu> wrote in article
<350c13d7.921284034@nntp.msu.edu>...
> Does anyone know how to use the system command to change a directory?
> 
> I'm using perl5 and I need to move to another directory.  I've tried
> using: 
> system("cd, public_html");
>  where public_html is a vaild directory, but for some reason when I
> run my script at the prompt it stays in the same dir.  
> 
> Any suggestions?
> 
> 


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

Date: Sun, 15 Mar 1998 20:31:17 GMT
From: Sneex <chasecreek.systemhouse@usa.net>
Subject: Re: System ?
Message-Id: <350C3946.B676B1A0@usa.net>

As other respondents have mentioned, don't use the system cmd to chdir,
use chdir :)

The reason is that the system command 'restores' the previous state when
it returns; so if you are in /usr/local and use system("cd /etc/mail");
You are plopped back in /usr/local (which is where ever your script
lives...)

/^HTH$/;
Sneex :)

Keith wrote:

> Does anyone know how to use the system command to change a directory?
>
> I'm using perl5 and I need to move to another directory.  I've tried
> using:
> system("cd, public_html");
>  where public_html is a vaild directory, but for some reason when I
> run my script at the prompt it stays in the same dir.
>
> Any suggestions?





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

Date: Sun, 15 Mar 1998 21:51:24 +0100
From: Jean-Louis Leroy <jll@skynet.be>
Subject: Tied and blessed?
Message-Id: <VA.00000006.00ea4255@enterprise>

Hello,

I may soon have the need to tie a hash and have it behave like an object as well. 
Is that allowed? I tried the following, which almost worked:

   package Test;

   sub new
   {
      return bless {}, shift;
   }

   sub test
   {
      print "ok\n";
   }

   sub TIEHASH
   {
      print "tied to $_[0]\n";
      return bless {}, $_[0];
   }

   sub FETCH
   {
      return 33;
   }

   sub STORE
   {
      print "STORE\n";
   }

   sub DESTROY
   {
      untie $_[0];
      print "destroyed\n";
   }

   package main;

   $t = new Test;
   tie %$t, Test;
   print "$t->{x}\n";
   $t->test;

Perl said:

    tied to Test
    33
    ok
    destroyed
    destroyed

As you see, DESTROY is called twice; I speculate that one accounts for untying 
and the other for the object going out of scope.

Any input on this is welcome...

jl



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

Date: Sun, 15 Mar 1998 21:51:44 +0100
From: Jean-Louis Leroy <jll@skynet.be>
Subject: Unloading subs?
Message-Id: <VA.00000007.00ea910a@enterprise>

Ok, Perl allows me to AUTOLOAD code on demand. Is there a way to unload 
the code (and reclaim memory) when it's not needed any longer?

jl



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

Date: Sun, 15 Mar 1998 21:51:07 +0100
From: Jean-Louis Leroy <jll@skynet.be>
Subject: Re: Weak references?
Message-Id: <VA.00000004.00ea022d@enterprise>

In article <6ebsp1$dh3$1@nnrp1.dejanews.com>,  wrote:
> Also, Sriram's object persistance discussion in the Panther (Advanced Perl
> Programming) might give you some other ideas.

An excellent book. However, Sriram (reluctantly) ducks the problem by not ensuring 
uniqueness of persistent objects in memory.

jl




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

Date: Sun, 15 Mar 1998 20:39:14 GMT
From: patrickq@autobahn.mb.ca (Patrick)
Subject: Re: You have 1 message(s) - how to print plurals?
Message-Id: <350f3d1a.165009210@news.autobahn.mb.ca>

Seems like the language needs to be reworked.  Help may be on the way,
I received the following recently

>
>The following was just received from a Brussels-based news service...FOR
>IMMEDIATE RELEASE:
>
>Brussels, Feb 07, 1998  The European Union Commissioners have announced
>that agreement has been reached to adopt English as the preferred
>language for European communications, rather than German, which was the
>other possibility, and which was lobbied for heavily by Germany. As part
>of the negotiations, however, HM Government conceded that English
>spelling did have some room for simplification and principally at the
>insistence of the Germans, has accepted a five-year plan for the phasing
>in of what will be known as EuroEnglish (Euro for short).
>
>In the first year, s will be used instead of the soft c. Sertainly
>sivil servants will reseive this news with joy. Also, the hard c will
>be replaced with k. Not only will this klear up konfusion, but
>keyboards kan have one less letter. There will be growing publik
>enthusiasm in the sekond year, when the troublesome ph will be
>replased by f. This will, among other things, make words like
>fotograf 20% shorter and will therefore kontribute to greater
>effisiensy.
>
>In the third year, publik akseptanse of the new spelling kan be expekted
>to be such that more komplikated changes are possible. Governments will
>enkourage the removal of double letters, which have always ben a
>deterent to akurate speling. Also, al wil agre that the horible mes of
>silent es in the languag is disgrasful, and thus they wil be
>eliminated.
>
>By the fourth year, peopl wil be resepyiv to steps such as replasing
>th by z, and w by v. During ze fifz year, ze unesesary o kan
>be dropd from vords kontaining ou, and similar changes vud of kors be
>aplid to ozer kombinations of leters.
>
>After zis fifz yer, ve vil hav a reli sensibl riten styl. Zer vil be no
>mor trubls or difikultis and evrivun vil find it ezi tu understand ech
>ozer.
>
>Ze drem vil finali kum tru!
>
______________

Patrick,
$cheek =~ /tongue/;




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

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


Administrivia:

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

	subscribe perl-users
or:
	unsubscribe perl-users

to almanac@ruby.oce.orst.edu.  

To submit articles to comp.lang.perl.misc (and this Digest), send your
article to perl-users@ruby.oce.orst.edu.

To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.

To request back copies (available for a week or so), send your request
to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
where x is the volume number and y is the issue number.

The Meta-FAQ, an article containing information about the FAQ, is
available by requesting "send perl-users meta-faq". The real FAQ, as it
appeared last in the newsgroup, can be retrieved with the request "send
perl-users FAQ". Due to their sizes, neither the Meta-FAQ nor the FAQ
are included in the digest.

The "mini-FAQ", which is an updated version of the Meta-FAQ, is
available by requesting "send perl-users mini-faq". It appears twice
weekly in the group, but is not distributed in the digest.

For other requests pertaining to the digest, send mail to
perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
sending perl questions to the -request address, I don't have time to
answer them even if I did know the answer.


------------------------------
End of Perl-Users Digest V8 Issue 2103
**************************************

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