[18429] in Perl-Users-Digest
Perl-Users Digest, Issue: 597 Volume: 10
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Mar 30 14:10:45 2001
Date: Fri, 30 Mar 2001 11:10:16 -0800 (PST)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Message-Id: <985979416-v10-i597@ruby.oce.orst.edu>
Content-Type: text
Perl-Users Digest Fri, 30 Mar 2001 Volume: 10 Number: 597
Today's topics:
Re: Read and write a hash of arrays ? <bigrich318@yahoo.com>
Re: regex-qr// for search and replace <rick.delaney@home.com>
require problem, help?? <mickm@ix.netcom.com>
segmentation fault CGI/Perl -> DBI <ubl@schaffhausen.de>
Using NET::FTP with authenticating proxy <dlungren@corecomm.net>
Re: Using NET::FTP with authenticating proxy <terrence.brannon@oracle.com>
Re: Variable scoping/globals issue (Tad McClellan)
Re: Variable scoping/globals issue nobull@mail.com
Why does no window open at executing the batch file <founder@pege.org>
Re: Why does no window open at executing the batch file <bart.lateur@skynet.be>
Digest Administrivia (Last modified: 16 Sep 99) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Fri, 30 Mar 2001 11:20:25 -0600
From: "Rich" <bigrich318@yahoo.com>
Subject: Re: Read and write a hash of arrays ?
Message-Id: <tc9frli02arv29@corp.supernews.com>
"Charles K. Clarkson" <c_clarkson@hotmail.com> wrote in message
news:7A5B30E0A164015A.398B4C2CB5AE70BD.C8C29CD0CAB087EC@lp.airnews.net...
<snip>
> : There wasn't a need for them in the first place (tmtowtdi). I tried to
> : provide a readable solution without changing the op's original script
too
> : much.
> :
> : Are you saying that yours is a far more efficient solution (if so,
could
> : you give an estimate of the milliseconds it saved?) or did you simply
want
> : to show that you could obfuscate the code a little?
>
> Clarity could easily be maintained with a comment.
So, rather than just name variables logically, you prefer comments? To each
his own, I guess.
## If there is a value for species (stored in $arr[5]), print it
## otherwise, print nothing
print ($arr[5]) ? $arr[5] : "";
OOPS! There's no *need* to do it that way when I could have done it another
way!
## If there is a value for species (stored in $arr[5]), print it
if ($arr[5]) { print $arr[5]; }
ARGH! I didn't *need* to do it that way either when I could have done it
like:
## Print the value of the species field (stored in $arr[5]) if one is
present
print $arr[5] if $arr[5];
WHEW! Good thing I caught that, it saved you the trouble of correcting me.
And you're right, commenting is much better than say,
print $species if $species;
>I have rarely
> checked for time savings - do you think it will really matter a lot. It
> doesn't seem like it should.
It doesn't. That's why I had a problem with your "here's a better way to do
it" post, when the example I posted worked fine and was easier to
understand for someone who was having problems with their script. And far
easier for someone, who didn't write the script, to maintain.
> As for obfuscation, I said 'There isn't a need for all those values
> anymore'. That's not the same as 'There a need for confusion'.
Who are you to determine the *need* for the values? And as I stated, there
wasn't a *need* for them in the first place.
$perl_motto = "There's more than one way to do it";
The op chose the values (for whatever reason) and I simply provided a
solution that used those same values for the sake of clarity (no comments
needed). Your posted example did nothing to make the code work better or
more efficiently, it simply made the code a little more compact. But, if
you need comments to explain the compacted code, what's the purpose of
compacting it in the first place?
Fifty programmers could look at that code and come up with fifty different
ways to get the same results. I had a problem with your example because it
didn't make the code better but actually made it more difficult to read
,unless commented. Again, negating the purpose of shortening the code.
<snip>
>The second example seems much more readable to me.
>Thanks for asking for my help.
No problem, I'll seek your assistance in the future if I need any of my
code to be pointlessly micro-analyzed and obfuscated.
>
> Does your style guide prohibit comments?
Does yours the logical naming of variables?
>
> # Here we change the order of the first 3 elements:
> # from:
> # $clone, $best_hit_id, $e_value,
> # to:
> # $e_value, $clone, $best_hit_id
Ahhh, not only would those pointless comments not be necessary with logical
naming, but your example eliminated those values (something about "no need"
for them) so I guess it would have to read.
while (<DATA>) {
if (/^(\w+)::$/) { $keyword = $1; next;};
my @arr =
(/^(\w+)\s+(\w+)\s+(.*?)\s+(.*?)\s+(.*?)\s+(.*?\s+.*?)\s+(.*)/);
# Now we change the order of the first 3 elements:
# from:
# $arr[0], $arr[1], $arr[2],
# to:
# $arr[2], $arr[0], $arr[1]
#
# we then use value of $arr[1] as a key in %enzymes_hash
#
# we then join the values of @arr to get the value
# for $enzymes_hash{$arr[1]}
# the order of the values in the key value is @arr[2, 0, 1, 3 .. 6];
push @{$enzymes_hash{$arr[1]}}, join ' ', @arr[2, 0, 1, 3 .. 6];
}
Wow, that's much better than just naming the variables logically!
So (using your example and the comments above), if the boss/client said "
Switch the locations of the clone field and the species field in the key
value and use the clone field as the key instead of the best hit id
field.", all I would have to do is look at the comments. Hmmm, the comments
don't tell me anything so I guess I'll have to examine the while loop that
assigned the values. Nothing there either, Damn! I have to dig into the
database to determine which fields go with which values of @arr (assuming
that I know the difference between a species and a clone when I see them),
I guess I should have used more comments.
Perhaps something like:
# the "clone" field is stored in $arr[0]
# the "best hit id" field is stored in $arr[1]
# the "e value" field is stored in $arr[2]
etc.........
But doesn't that negate the purpose of your posted example, which I assume
was to cut down on all the clutter in that *huge* while loop? And, if the
purpose was to save space, why replace logically named variables if you
have to use comments to explain the replacements?
> HTH,
> Charles K. Clarkson
>
> Curiosity was framed. Ignorance killed the cat.
STY,
Rich
I love cats.............they taste like chicken.
------------------------------
Date: Fri, 30 Mar 2001 14:25:06 GMT
From: Rick Delaney <rick.delaney@home.com>
Subject: Re: regex-qr// for search and replace
Message-Id: <3AC49A83.9D063CD8@home.com>
[posted & mailed]
Bart Lateur wrote:
>
> Gee. It works properly in ActivePerl 5.6.0 Build 623 for
> MSWin32-x86-multi-thread, compiled on Dec 15 2000, and on IndigoPerl
> 5.6.0 from Indigostar (<www.indigostar.com>) compiled on May 6 2000.
> That isn't too surprising, as IndigoPerl itself isn't a separate port,
> but not much more than a recompilation on the official MSWin32 port as
> per ActiveState.
Thanks, Bart.
> It does NOT work properly, i.e. all closure instances share the same
> compiled regex shared, on 5.005_03 on FreeBSD.
>
> I'm surprised that there's this relapse.
My guess is that it was just an oversight on the part of someone at
ActiveState who forgot to send the patch to p5p.
> Could it be in the patches for multi-thread support?
Maybe. Anyway, since ActivePerl 623 is the latest and still exhibits
the good behaviour, I've downloaded it and its diffs. I'll try it on
Linux later and send a summary of what I find to p5p and here.
--
Rick Delaney
rick.delaney@home.com
------------------------------
Date: Fri, 30 Mar 2001 10:18:37 -0800
From: Mickey Mestel <mickm@ix.netcom.com>
Subject: require problem, help??
Message-Id: <3AC4CDFD.1EE1B66D@ix.netcom.com>
hi,
i am at perl5 (5.0 patchlevel 5 subversion 2) and i have the following
script:
#!/usr/local/bin/perl
$foo = Foo::foo;
#$foo = "Foo/foo.pm";
require Foo::foo;
#require $foo;
and the following in the cwd, the file Foo/foo.pm, which is:
package Foo::foo;
print "hello\n";
1;
if i run it as above, then it works. if i instead run the script with
the line
require $foo;
then i get the following:
Can't locate Foo::foo in @INC (@INC contains:
/usr/local/lib/perl5/5.00502/i
86pc-solaris /usr/local/lib/perl5/5.00502
/usr/local/lib/perl5/site_perl/5.005/i
86pc-solaris /usr/local/lib/perl5/site_perl/5.005 .) at foo.prl line 6.
if i run it with the lines:
$foo = "Foo/foo.pm";
require $foo;
then it works. so it seems that using require in this situation, i'm
able to get it to find it if i provide a file name, but not a package
name. i need this as i am dynamically loading modules depending on the
input to the script.
can anyone give me a hand on this? i'm sure i'm missing something
really simple, but can't figure it out.
also, i don't have access to the newsgroups from work, or very often,
so i have to get there through this channel. can you please respond to
mickm@baygate.com
thanks,
mickm
--
-----------------------------------------------------------------------
This is a signature file. This is only a signature file. Had this
been an actual piece of useful information, you would have been
instructed on what to do with it.
-----------------------------------------------------------------------
------------------------------
Date: Fri, 30 Mar 2001 18:32:15 +0100
From: Malte Ubl <ubl@schaffhausen.de>
Subject: segmentation fault CGI/Perl -> DBI
Message-Id: <3AC4C31F.1964F1AD@schaffhausen.de>
Hi,
well I had a first timer for me. My Perl called a segmentation
fault/core dump.
I looked for that on Deja and this seems to be rather unusal, especially for
Perl over CGI as compared to mod_perl.
The script uses my own db abstraction layer. I know I probably should be using
DBIx::Recordset, but I dont.
Now what happens is that when I initialize a couple of objects from the
db and
I just dump them to STDOUT using Data::Dumper. I can do as many dumps
as I want,
Perl only outputs a part of the last dump. In practice this means the script
would only output part of whatever it should output.
When I run the script from the command line, I get a "segmentation
fault/core dump"
error after the script quits working.
I know you guys probably wont tell me to change line 3 in file x since I
cant show
you any code. The reason why is that I alsolutely have no clue how the
error is
cause, so I'm unable to shorten my code because I wouldnt know what to
cut out.
So, I'd be really I happy if anybody could point me in the right
direction for this
matter.
Thank You,
->malte
------------------------------
Date: Fri, 30 Mar 2001 08:17:57 -0600
From: Don Lundgren <dlungren@corecomm.net>
Subject: Using NET::FTP with authenticating proxy
Message-Id: <3ac4956c$0$42883$1dc6e903@news.corecomm.net>
I am having a bear of a time with an ftp through a proxy server
requiring authentication.What we have is a situation where the script is
running on an NT machine running ActiveState Perl that is doing a ftp
connection to the firewall with a userid & password once that happens it
then needs to send the command "user someone@someserver.com" it will
then need to enter the password for the follow on server. I have tried a
few variations on this and have not had any luck. Each test says that
all went well but does not return the directory listing. When I run the
script from outside the firewall and reconfigure it to not use the
firewall all runs fine and I get my directory listing.
The ultimate goal is to replace a simple batch file that has no logging
or error correction with the perl script which will do both. The basic
commands that the batch file is running are as follows:
open ftpgate.somewhere.com
abcuser
userpassword
user userxyz@ftp2.SomeOtherPlace.com
userxyzpassword
< balance of commands ommited to shorten >
If there is any way I can get you to take a quick look at the scripts
below and see if anything pops out at you that would be great. What I
have tried so far is as follows:
#### First Attempt ##################################################
# Firewall access information
$firewallname="ftpgate.somewhere.com";
$firewalluser="abcuser";
$firewallpassword="userpassword";
# FTP Server address, login and password
$ftpname="ftp2.SomeOtherPlace.com";
$ftpusersite='userxyz@ftp2.SomeOtherPlace.com';
$loginname="userxyz";
$password='userxyzpassword';
# Remote directory you wish to download from (SOURCE)
$remotedirname="/motftp";
# Connect to firewall
print "Connecting to $firewallname...";
$ftp=Net::FTP->new ($firewallname, Debug => 1) or errormessage("Can\'t
connect to Firewall $firewallname - $!\n");
print "OK\n";
# Login to firewall
print "Login to firewall as $loginname...";
$ftp->login($firewalluser,$firewallpassword) or errormessage("Can\'t
login as $firewalluser/$firewallpassword- $!\n");
print "OK\n";
# Login to ftp site
#print "Follow on Login as $ftpusersite...";
$ftp->user($ftpusersite) or errormessage("Can\'t do second login as
$ftpusersite - $!\n");
$ftp->pass($password) or errormessage("Can\'t do second login password
as $password - $!\n");
print "OK\n";
#### Get directory listing for specific directory on follow on machine
####
&messageprint ("Get directory listing of $remotedirname...");
my @lines=$ftp->dir($remotedirname) or errormessage("Can\'t get listing
of $remotedirname - $!\n");
&messageprint ("OK\n");
foreach (@lines)
{
if (substr ($_,0,1) eq "-") # download files
{
$filesize=substr($_,30)=~/(\d+\.?\d*|\.\d+)/; # get file size
$filesize=sprintf "%d",$1; # get file size
$filename=&getfilename($'); # get file name
(trunc after date)
print "$filename ($filesize)\n";
}
}
$ftp->quit;
print "END.\n";
#### Second Attempt ##################################################
# Firewall access information
$firewallname="ftpgate.somewhere.com";
$firewalluser="abcuser";
$firewallpassword="userpassword";
# FTP Server address, login and password
$ftpname="ftp2.SomeOtherPlace.com";
$ftpusersite='userxyz@ftp2.SomeOtherPlace.com';
$loginname="userxyz";
$password='userxyzpassword';
# Connect to firewall
print "Connecting to $firewallname...";
$ftp=Net::FTP->new ($firewallname, Debug => 1) or errormessage("Can\'t
connect to Firewall $firewallname\n");
print "OK\n";
# Login to firewall
print "Login to firewall as $loginname...";
$ftp->login($firewalluser,$firewallpassword) or errormessage("Can\'t
login as $firewalluser/$firewallpassword- $!\n");
print "OK\n";
# Login to ftp site
print "Follow on Login as $ftpusersite...";
$ftp->command("user $ftpusersite") or errormessage("Can\'t do second
login as user $ftpusersite - $!\n");
print "OK\n";
$ftp->command($password) or errormessage("Can\'t do second login
password as $password - $!\n");
print "OK\n";
#### Complete whatever you will be doing on ftp server. i.e. get put
etc. ####
&messageprint ("Get directory listing of $remotedirname...");
my @lines=$ftp->dir($remotedirname) or errormessage("Can\'t get listing
of $remotedirname - $!\n");
&messageprint ("OK\n");
foreach (@lines)
{
if (substr ($_,0,1) eq "-") # download files
{
$filesize=substr($_,30)=~/(\d+\.?\d*|\.\d+)/; # get file size
$filesize=sprintf "%d",$1; # get file size
$filename=&getfilename($'); # get file name
(trunc after date)
print "$filename ($filesize)\n";
}
}
$ftp->quit;
print "END.\n";
Thank You
Don (needs to learn perl more DOH!) Lundgren
dlungren@corecomm.net
------------------------------
Date: Fri, 30 Mar 2001 08:59:51 -0800
From: Terrence Monroe Brannon <terrence.brannon@oracle.com>
Subject: Re: Using NET::FTP with authenticating proxy
Message-Id: <3AC4BB87.841A37DA@oracle.com>
1- you might run this with the Debug flag of Net::FTP set so that we could
see exactly where it fails
2- I have used Net::FTP with the type of proxy you are dealing with. It
wasn't very hard. I looked at the Net::FTP docs and I think you are doing
the wrong thing by attempting to log into your proxy server with the login
method. The docs do state:
http://theoryx5.uwinnipeg.ca/CPAN/data/libnet/Net/FTP.html
that an authorize method is called internally to handle negotiation of the
firewall. The login argument is for getting into the FTP site, *not* the
proxy, per the docs...
What you have to do is configure Net::FTP when you download and install it
(it's in the libnet package) so that it has the uname and passwd for the
proxy in it's internal config file... that is what I did.
Don Lundgren wrote:
> I am having a bear of a time with an ftp through a proxy server
> requiring authentication.What we have is a situation where the script is
> running on an NT machine running ActiveState Perl that is doing a ftp
> connection to the firewall with a userid & password once that happens it
> then needs to send the command "user someone@someserver.com" it will
> then need to enter the password for the follow on server. I have tried a
> few variations on this and have not had any luck. Each test says that
> all went well but does not return the directory listing. When I run the
> script from outside the firewall and reconfigure it to not use the
> firewall all runs fine and I get my directory listing.
>
> The ultimate goal is to replace a simple batch file that has no logging
> or error correction with the perl script which will do both. The basic
> commands that the batch file is running are as follows:
> open ftpgate.somewhere.com
> abcuser
> userpassword
> user userxyz@ftp2.SomeOtherPlace.com
> userxyzpassword
> < balance of commands ommited to shorten >
>
> If there is any way I can get you to take a quick look at the scripts
> below and see if anything pops out at you that would be great. What I
> have tried so far is as follows:
>
> #### First Attempt ##################################################
> # Firewall access information
> $firewallname="ftpgate.somewhere.com";
> $firewalluser="abcuser";
> $firewallpassword="userpassword";
>
> # FTP Server address, login and password
> $ftpname="ftp2.SomeOtherPlace.com";
> $ftpusersite='userxyz@ftp2.SomeOtherPlace.com';
> $loginname="userxyz";
> $password='userxyzpassword';
>
> # Remote directory you wish to download from (SOURCE)
> $remotedirname="/motftp";
> # Connect to firewall
> print "Connecting to $firewallname...";
> $ftp=Net::FTP->new ($firewallname, Debug => 1) or errormessage("Can\'t
> connect to Firewall $firewallname - $!\n");
> print "OK\n";
>
> # Login to firewall
> print "Login to firewall as $loginname...";
> $ftp->login($firewalluser,$firewallpassword) or errormessage("Can\'t
> login as $firewalluser/$firewallpassword- $!\n");
> print "OK\n";
>
> # Login to ftp site
> #print "Follow on Login as $ftpusersite...";
> $ftp->user($ftpusersite) or errormessage("Can\'t do second login as
> $ftpusersite - $!\n");
> $ftp->pass($password) or errormessage("Can\'t do second login password
> as $password - $!\n");
> print "OK\n";
>
> #### Get directory listing for specific directory on follow on machine
> ####
> &messageprint ("Get directory listing of $remotedirname...");
> my @lines=$ftp->dir($remotedirname) or errormessage("Can\'t get listing
> of $remotedirname - $!\n");
> &messageprint ("OK\n");
> foreach (@lines)
> {
> if (substr ($_,0,1) eq "-") # download files
> {
> $filesize=substr($_,30)=~/(\d+\.?\d*|\.\d+)/; # get file size
> $filesize=sprintf "%d",$1; # get file size
> $filename=&getfilename($'); # get file name
> (trunc after date)
> print "$filename ($filesize)\n";
>
> }
> }
>
> $ftp->quit;
> print "END.\n";
>
> #### Second Attempt ##################################################
> # Firewall access information
> $firewallname="ftpgate.somewhere.com";
> $firewalluser="abcuser";
> $firewallpassword="userpassword";
>
> # FTP Server address, login and password
> $ftpname="ftp2.SomeOtherPlace.com";
> $ftpusersite='userxyz@ftp2.SomeOtherPlace.com';
> $loginname="userxyz";
> $password='userxyzpassword';
>
> # Connect to firewall
> print "Connecting to $firewallname...";
> $ftp=Net::FTP->new ($firewallname, Debug => 1) or errormessage("Can\'t
> connect to Firewall $firewallname\n");
> print "OK\n";
>
> # Login to firewall
> print "Login to firewall as $loginname...";
> $ftp->login($firewalluser,$firewallpassword) or errormessage("Can\'t
> login as $firewalluser/$firewallpassword- $!\n");
> print "OK\n";
>
> # Login to ftp site
> print "Follow on Login as $ftpusersite...";
> $ftp->command("user $ftpusersite") or errormessage("Can\'t do second
> login as user $ftpusersite - $!\n");
> print "OK\n";
> $ftp->command($password) or errormessage("Can\'t do second login
> password as $password - $!\n");
> print "OK\n";
>
> #### Complete whatever you will be doing on ftp server. i.e. get put
> etc. ####
> &messageprint ("Get directory listing of $remotedirname...");
> my @lines=$ftp->dir($remotedirname) or errormessage("Can\'t get listing
> of $remotedirname - $!\n");
> &messageprint ("OK\n");
> foreach (@lines)
> {
> if (substr ($_,0,1) eq "-") # download files
> {
> $filesize=substr($_,30)=~/(\d+\.?\d*|\.\d+)/; # get file size
> $filesize=sprintf "%d",$1; # get file size
> $filename=&getfilename($'); # get file name
> (trunc after date)
> print "$filename ($filesize)\n";
>
> }
> }
>
> $ftp->quit;
> print "END.\n";
>
> Thank You
> Don (needs to learn perl more DOH!) Lundgren
> dlungren@corecomm.net
--
Terrence Brannon
Oracle Corporation
500 Oracle Parkway
M/S 3op1556a
Redwood Shores, CA 94065
(650) 607-5482
------------------------------
Date: Fri, 30 Mar 2001 10:38:10 -0500
From: tadmc@augustmail.com (Tad McClellan)
Subject: Re: Variable scoping/globals issue
Message-Id: <slrn9c9a32.o1j.tadmc@tadmc26.august.net>
Gregory Toomey <gtoomey@usa.net> wrote:
>I'm using 'use strict', so I'm forced to
^^^^^^^^^
No you're not.
>use 'my' to declare variables
You must either declare variables OR use an explicit package name
to satisfy "strict".
my() is one way of declaring variables, there are others.
Note that if you use explicit package names, you can be "use strict"
clean and still never declare any variables!
>and
>make them locally scoped in the script.
^^^^^^^^^^^^^
"in the file" I think you meant?
If you declare them with "use vars" then strict will be happy, and
you can access the variables across file boundaries.
>Is there a safe way to export variable from a .pl script?
I assume a ".pl script" means a "Perl script"?
I'm not sure what "export" means to you.
You can declare a variable (with "use vars") in one file and access
the variable in another file. Is that what you mean?
I recommend checking out "Coping with Scoping":
http://perl.plover.com/FAQs/Namespaces.html
--
Tad McClellan SGML consulting
tadmc@augustmail.com Perl programming
Fort Worth, Texas
------------------------------
Date: 30 Mar 2001 18:05:20 +0100
From: nobull@mail.com
Subject: Re: Variable scoping/globals issue
Message-Id: <u9wv97jigf.fsf@wcl-l.bham.ac.uk>
"Gregory Toomey" <gtoomey@usa.net> writes:
> I've been writing lots of Perl scripts (*.pl) for an application.
> I'm using 'use strict', so I'm forced to use 'my' to declare variables and
> make them locally scoped in the script.
"I've recently fitted smoke alarms so I'm forced to stop setting fire
to house".
> Is there a safe way to export variable from a .pl script?
BEGIN { require 'whatever.pl' }
This is however not safe if you do it in more than one package.
Also lexically scoped variables cannot be exported.
> Variables can be exported from packages but this seems overkill for what I'm
> doing.
No it is not.
--
\\ ( )
. _\\__[oo
.__/ \\ /\@
. l___\\
# ll l\\
###LL LL\\
------------------------------
Date: Fri, 30 Mar 2001 20:15:16 +0200
From: "Roland Mösl" <founder@pege.org>
Subject: Why does no window open at executing the batch file
Message-Id: <3ac4ccd4$0$26348@SSP1NO25.highway.telekom.at>
Win32::Shell::Execute( "open", "command.bat", "", ".\\",
"SW_SHOWMAXIMIZED" );
The batch file is executed, but invisible
What could I do, that the batch execution takes places
in a visible command prompt window (Windows 98SE)
--
Roland Mösl
http://pege.org Clear targets for a confused civilization
http://BeingFound.com Web Design starts at the search engine
------------------------------
Date: Fri, 30 Mar 2001 19:02:19 GMT
From: Bart Lateur <bart.lateur@skynet.be>
Subject: Re: Why does no window open at executing the batch file
Message-Id: <m2m9ctgdblh88jb8lup9ho10lq3ks1o4dt@4ax.com>
Roland Mösl wrote:
> Win32::Shell::Execute( "open", "command.bat", "", ".\\",
>"SW_SHOWMAXIMIZED" );
>
>The batch file is executed, but invisible
Why so much trouble? Simply do
system('command.bat');
True, that will be in a normal window.
--
Bart.
------------------------------
Date: 16 Sep 99 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 16 Sep 99)
Message-Id: <null>
Administrivia:
The Perl-Users Digest is a retransmission of the USENET newsgroup
comp.lang.perl.misc. For subscription or unsubscription requests, send
the single line:
subscribe perl-users
or:
unsubscribe perl-users
to almanac@ruby.oce.orst.edu.
| NOTE: The mail to news gateway, and thus the ability to submit articles
| through this service to the newsgroup, has been removed. I do not have
| time to individually vet each article to make sure that someone isn't
| abusing the service, and I no longer have any desire to waste my time
| dealing with the campus admins when some fool complains to them about an
| article that has come through the gateway instead of complaining
| to the source.
To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.
To request back copies (available for a week or so), send your request
to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
where x is the volume number and y is the issue number.
For other requests pertaining to the digest, send mail to
perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
sending perl questions to the -request address, I don't have time to
answer them even if I did know the answer.
------------------------------
End of Perl-Users Digest V10 Issue 597
**************************************