[28356] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 9720 Volume: 10

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Wed Sep 13 09:06:00 2006

Date: Wed, 13 Sep 2006 06:05:09 -0700 (PDT)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Wed, 13 Sep 2006     Volume: 10 Number: 9720

Today's topics:
    Re: Auto Web Surfing / Form Entry <dorward@yahoo.com>
    Re: Auto Web Surfing / Form Entry <mritty@gmail.com>
    Re: converting php md5 function to perl <john1949@yahoo.com>
    Re: CPAN 'shell' interface stopped working? <dh1760@gmail.com>
        getgrgid with multiple occurances of gid in groupfile <aukjan@vanbelkum.no.spam.nl>
    Re: getgrgid with multiple occurances of gid in groupfi <aukjan@vanbelkum.no.spam.nl>
    Re: getgrgid with multiple occurances of gid in groupfi <zen13097@zen.co.uk>
    Re: How do you compress a url for ascii output? <bugbear@trim_papermule.co.uk_trim>
        How to make only one thread sleep? <ralmoritz@gmail.com>
    Re: How to make only one thread sleep? <ralmoritz@gmail.com>
    Re: How to make only one thread sleep? <1usa@llenroc.ude.invalid>
    Re: localtime is now wrong after server change anno4000@radom.zrz.tu-berlin.de
    Re: Maximum number of sockets <sisyphus1@nomail.afraid.org>
    Re: Modifying and printing a string variable <zen13097@zen.co.uk>
        print cyriilic (UTF-8) characters with PERL on HTML pag <andreas.pfaff@swissonline.ch>
    Re: Wide character issues with HTML Tidy <neilang@gmail.com>
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

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

Date: Wed, 13 Sep 2006 08:27:42 +0100
From: David Dorward <dorward@yahoo.com>
Subject: Re: Auto Web Surfing / Form Entry
Message-Id: <ee8btn$kd7$1$8300dec7@news.demon.co.uk>

frznchckn@gmail.com wrote:

> If I get a csv dump of my calendar, can I write a script that will
> enter all the events into the web form for me?

Probably. You'll likely need Text::CSV and LWP.

-- 
David Dorward       <http://blog.dorward.me.uk/>   <http://dorward.me.uk/>
                     Home is where the ~/.bashrc is


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

Date: 13 Sep 2006 05:59:23 -0700
From: "Paul Lalli" <mritty@gmail.com>
Subject: Re: Auto Web Surfing / Form Entry
Message-Id: <1158152363.469912.182260@h48g2000cwc.googlegroups.com>

David Dorward wrote:
> frznchckn@gmail.com wrote:
>
> > If I get a csv dump of my calendar, can I write a script that will
> > enter all the events into the web form for me?
>
> Probably. You'll likely need Text::CSV and LWP.

More specifically, you'll most likely want WWW::Mechanize, which
inherits from LWP.

Paul Lalli



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

Date: Wed, 13 Sep 2006 11:24:45 +0100
From: "John" <john1949@yahoo.com>
Subject: Re: converting php md5 function to perl
Message-Id: <A_ydncQkhP3yQZrYnZ2dnUVZ8s2dnZ2d@eclipse.net.uk>


Hi

I've pulled this from my site

use Digest::MD5 qw (md5_hex); # 32 character hex hash
my $hash=uc(md5_hex($message)); # uppercase

Regards
John


<checarsner@gmail.com> wrote in message 
news:1158092199.849372.326210@e3g2000cwe.googlegroups.com...
> Hey all
>
> how I can convert the PHP password encryption  into a Perl function
> which generates the same result...
> I am completely stuck at this point... My PHP knowledge is close to
> zero. I understand their procedure but when I do it in Perl it comes
> back with a different result...
> in PHP: $newPw["userPassword"] = '{md5}' .
> base64_encode(pack('H*',md5($newPasswd)));
> sorry the help file is a place where we deffinitly will not find
> anything..
> the problem is not, understanding what the PHP code is doing. The issue
> is to make Perl do the same.
>
> TIA
>
> Che
> 




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

Date: 13 Sep 2006 04:56:42 -0700
From: "Dave Hammond" <dh1760@gmail.com>
Subject: Re: CPAN 'shell' interface stopped working?
Message-Id: <1158148602.212033.99960@h48g2000cwc.googlegroups.com>

Christian Winter wrote:
> > Furthermore, if you want to install modules, just tell 'cpan' on the
> > command line:
> >
> >     % cpan Module::Name Some::Other::Module ...
> >
>
> Which is also documented in "perldoc cpan" :)
>
> -Chris

Documentation?  We don't need no steenkin' ...  :)

Anyway, I guess I'm just a creature of habit; I learned how to use CPAN
in a particular way, and it worked that way for a decade.  The one time
it didn't, I assumed the program was at fault, not my aging memory!
And, yes, I know what they say about assumptions!!

-Dave H.



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

Date: Wed, 13 Sep 2006 11:16:17 +0200
From: Aukjan van Belkum <aukjan@vanbelkum.no.spam.nl>
Subject: getgrgid with multiple occurances of gid in groupfile
Message-Id: <30d2a$4507cc67$c2abfc64$26205@news2.tudelft.nl>

Hello all,

I have been struggling with this one, and think that it might be a OS 
problem and not Perl, but still it is my Perl script that fails.. :-(

Our groupfile here has groups with too many users, so LINE_MAX would be 
exceeded. This can be overcome by creating multiple groups with the same 
GID.  The problem I am facing now is that when I call getgrgid on the 
GID of this group, only the first entry in the groupfile is returned, so 
I only get a small portion of all users who belong to the GID.

I was wondering if anybody else here has had this problem, and solved it 
using system calls (so not opening up the groupfile, which comes from 
NIS here)... There has been one post before about this, but this was in 
1997, and got no answer..

Thanks,

Aukjan


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

Date: Wed, 13 Sep 2006 14:03:25 +0200
From: Aukjan van Belkum <aukjan@vanbelkum.no.spam.nl>
Subject: Re: getgrgid with multiple occurances of gid in groupfile
Message-Id: <42cf0$4507f391$c2abfc64$4158@news2.tudelft.nl>

Aukjan van Belkum wrote:

> Our groupfile here has groups with too many users, so LINE_MAX would be 
> exceeded. This can be overcome by creating multiple groups with the same 
> GID.  The problem I am facing now is that when I call getgrgid on the 
> GID of this group, only the first entry in the groupfile is returned, so 
> I only get a small portion of all users who belong to the GID.
 >

Well, i solved it by using 'getgrent' to retrieve the groupfile and 
storing this in a multi dimensional hash, with GID as primary key and 
the membername as secondary key. The groupname is than the value... This 
  solved my problem...

code used:

my %gr_by_gid = ();

setgrent;
while ( my ( $name,$pw,$gid,$members ) = getgrent ){
   $gr_by_gid{$gid}     = {} unless exists $gr_by_gid{$gid};
   $gr_by_gid{$gid}{$_} = $name foreach ( split /\s+/,$members);
}
endgrent;

Thanks..

Aukjan


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

Date: 13 Sep 2006 12:59:01 GMT
From: Dave Weaver <zen13097@zen.co.uk>
Subject: Re: getgrgid with multiple occurances of gid in groupfile
Message-Id: <45080095$0$2503$fa0fcedb@news.zen.co.uk>

Aukjan van Belkum <aukjan@vanbelkum.no.spam.nl> wrote:
> 
>  Well, i solved it by using 'getgrent' to retrieve the groupfile and 
>  storing this in a multi dimensional hash, with GID as primary key and 
>  the membername as secondary key. The groupname is than the value... This 
>    solved my problem...

Glad to hear you solved your problem. Perhaps some tips would be
welcome too?

>  code used:
> 
>  my %gr_by_gid = ();

Hashes are created empty, so the initialisation here is redundant:

   my %gr_by_gid;

>  setgrent;

Purely a matter of personal style, but I like (most of) my function
calls to look like them:

    setgrent();

>  while ( my ( $name,$pw,$gid,$members ) = getgrent ){

If you're not using all the values returned, why created variables to
store them?
    while ( my ($name, $gid, $members) = (getgrent)[0, 2, 3] ) {
or 
    while ( my ( $name, undef, $gid, $members ) = getgrent() ){

>     $gr_by_gid{$gid}     = {} unless exists $gr_by_gid{$gid};

There is no need to create this anonymous hashref. Perl's
autovivification feature will create this for you. (i.e. you can
simply remove this line from your code). See `perldoc perlref` for
information on autovivification.


>     $gr_by_gid{$gid}{$_} = $name foreach ( split /\s+/,$members);

Again, a personal style choice, but I'd leave off the unnessesary
parentheses, and use the shorter 'for':

        $gr_by_gid{$gid}{$_} = $name for split /\s+/,$members;


>  }
>  endgrent;

This is how I'd write it (untested):

    use strict;
    use warnings;

    my %gr_by_id;

    setgrent();
    while ( my ($name, undef, $gid, $members) = getgrent() ) {
        $gr_by_gid{$gid}{$_} = $name for split /\s+/,$members;
    }
    endgrent();



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

Date: Wed, 13 Sep 2006 12:07:19 +0100
From: bugbear <bugbear@trim_papermule.co.uk_trim>
Subject: Re: How do you compress a url for ascii output?
Message-Id: <4507e667$0$547$ed2619ec@ptn-nntp-reader03.plus.net>

Randal L. Schwartz wrote:
>>>>>>"blaine@worldweb" == blaine@worldweb com <blaine@worldweb.com> writes:
> 
> 
> blaine@worldweb> I've been trying to come up with a way to compress part of a url to
> blaine@worldweb> make it shorter.
> 
> Learn to use server-side sessions.  You don't need a 256-char URL.  Ever.
> That's more possibilitities than countable atoms in the universe.  You clearly
> don't have *that* much state to distinguish. :)

Yes, but explicitly separate variables are much easier to decode/parse
than predefining the mapping between a state code and
the separate variables.

Further, server side sessions have their merits,
but recording state in a URL can have its merits.

For example, a fully-stateful (?!) URL
can be book marked in a browser,
and returned at any time, or be sent
to somebody else in an email.

   BugBear


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

Date: 13 Sep 2006 01:43:17 -0700
From: "Ralph Moritz" <ralmoritz@gmail.com>
Subject: How to make only one thread sleep?
Message-Id: <1158136997.560766.126140@i3g2000cwc.googlegroups.com>

Hi,

I've written a little multi-threaded file monitoring program. When it
starts it creates a detached "factory" thread, which loops infinitely,
creating detached worker threads. In the main thread we enter a
"monitor" loop which scans a directory for new files at intervals and
inserts them into a queue for the factory thread to extract. The
factory thread will block if the maximum number of allowed worker
threads are already running or there is no data in the queue.

This design was chosen so that the monitor loop can continue running
even if the factory thread blocks. Some problems have appeared though:

 * When I call sleep() in the main thread (monitor loop), it affects
   the entire process, rather than just the main thread. How do I put
   just one, specific thread to sleep?

 * There appears to be a memory leak somewhere. When I run the program
   with perl -w I get warnings about leaked scalars. How do I track
   this down?

My program is included below in it's entirety. Any advice on the
design and the code will be much appreciated.

TIA, 
Ralph



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

Date: 13 Sep 2006 01:47:51 -0700
From: "Ralph Moritz" <ralmoritz@gmail.com>
Subject: Re: How to make only one thread sleep?
Message-Id: <1158137271.507323.263550@h48g2000cwc.googlegroups.com>

I wrote:

> My program is included below in it's entirety.

Sorry, I forgot to include the program :-] Here it is:

use strict;
use threads;
use threads::shared;
use Thread::Semaphore;
use Thread::Queue;
use File::Copy;
use Digest::MD5 qw(md5);

# ------ Fallback config values ------------------

# Path to application root directory
our $root_dir = '/home/ralph/Sources/QMSv2';

# Directory containing inbound files
our $data_dir = "$root_dir/inbound";

# Directory to put processed files
our $result_dir = "$root_dir/processed";

# Directory to put files containing errors
our $error_dir = "$root_dir/errors";

# Path to the log file
our $logfile = "$root_dir/logs/monit.log";

# Frequency to scan inbound directory (in seconds)
our $scan_interval = 60;

# File extensions to match against
our $file_ext = qr/.txt$/;

# Maximum number of worker threads to create
our $max_workers = 10;

# -----------------------------------------------

# HACK: hard-code path to config file
my $config_file = '/home/ralph/Sources/QMSv2/config.pl';
read_config($config_file);

my $io_sem = Thread::Semaphore->new;               # I/O semaphore
my $th_sem = Thread::Semaphore->new($max_workers); # Thread semaphore
my $queue  = Thread::Queue->new;                   # Data queue
my %files :shared;

monitor_loop($data_dir);

sub monitor_loop {
  log_msg('Entering monitor loop');
  my $factory = threads->create(\&factory_loop);
  $factory->detach;

  while (1) {
    log_msg('Woke up. Scanning for files...');

    opendir(my $indir, $data_dir) or
      log_msg("Error: failed to open directory $data_dir: $!")
	&& exit 1;
    my @flist = grep { $_ = "$data_dir/$_" if /$file_ext/ }
readdir($indir);
    closedir($indir) or
      log_msg("Error: failed to close directory $data_dir: $!")
	&& exit 1;

    foreach my $fn (@flist) {
      open(my $in, $fn) or log_msg("Error: failed to open file $fn:
$!")
	&& exit 1;
      my $digest = Digest::MD5->new->addfile($in)->hexdigest;
      close($in);

      # Ignore files which are still being processed.
      lock(%files);
      unless (exists $files{$digest}) {
	log_msg("Queueing file $fn...");
	$files{$digest} = $fn;
	$queue->enqueue($digest);
      }
    }

    log_msg("Sleeping...");

    # BUG: this puts the whole process to sleep, instead
    #      of just the current thread.
    sleep($scan_interval);
  }
}

sub factory_loop {
  log_msg('Entering factory loop');
  while (1) {
    $th_sem->down;
    my $digest = $queue->dequeue;
    log_msg('Dispatching worker thread...');
    my $worker = threads->create(\&process_file, $digest);
    $worker->detach;
  }
}

sub process_file {
  my $digest = shift;
  my $file = $files{$digest};
  open(my $in, $file) or log_msg("Error: failed to open file $file:
$!")
    && exit 1;
  log_msg("Processing file $file...");

  # ---- DUMMY PROCESSING CODE -----
  my $count = 0;
  $count++ while (my $line = <$in>);

  close $in;
  if ($count) {
    log_msg("OK:\t$file");
    move($file, $result_dir);
  } else {
    log_msg("ERR:\t$file");
    move($file, $error_dir);
  }
  # -------------------------------

  lock(%files);
  delete $files{$digest};
  $th_sem->up;
}

sub log_msg {
  $io_sem->down;
  my $msg = shift;
  open(my $logfile, ">> $logfile");
  print $logfile localtime() . " - $msg\n";
  close($logfile);
  $io_sem->up;
}

sub read_config {
  my $file = shift;
  open(my $cfg, $file) or
    warn "Warning: failed to open config file $file: $!. Using default
values instead."
    && return;
  my $config = join('', <$cfg>);
  eval $config;
  die "Error: in config file $file: $@" if $@;
}



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

Date: Wed, 13 Sep 2006 12:08:07 GMT
From: "A. Sinan Unur" <1usa@llenroc.ude.invalid>
Subject: Re: How to make only one thread sleep?
Message-Id: <Xns983D52C5F3B8Basu1cornelledu@127.0.0.1>

"Ralph Moritz" <ralmoritz@gmail.com> wrote in 
news:1158137271.507323.263550@h48g2000cwc.googlegroups.com:

>> My program is included below in it's entirety.

Your program has too many external dependencies for anyone else to try 
to debug it. The need to post the shortest possible program that still 
exhibits the problem.

There are oddities such as defining a subroutine warn with the name of a 
builtin. Again, I don't know if this has anything to do with the problem 
or even if it is a problem but why create complications?

Don't use compound conditionals as in 

>  open(my $in, $fn) or log_msg("Error: failed to open file $fn: $!")
> 	&& exit 1;

Just a simple

unless ( open my $in, '<', $fn ) {
    log_msg("Error: failed to open file $fn: $!");
    exit 1;
}

is far more readable.

As far as I can see, your factory_loop does not limit the number of 
threads it is creating. If there is a lot of output on the screen, you 
might be missing messages like:

Thread failed to start: Can't call method "detach" on an undefined value 
at D:\UseNet\clpmisc\t67.pl line 27.

#!/usr/bin/perl

use strict;
use warnings;

use threads;

monitor_loop();

sub monitor_loop {
    warn("Entering monitor loop\n");
    my $factory = threads->create("factory_loop");
    $factory->detach;

    while (1) {
        warn("Woke up. Scanning for files...\n");
        warn("Sleeping...\n");
        sleep 5;
    }
}

sub factory_loop {
    warn("Entering factory loop\n");
    while (1) {
        for ( 1 .. 10 ) {
            warn("Dispatching worker thread...\n");
            my $worker = threads->create("process_file");
            $worker->detach;
        }
        sleep 5;
    }
}

sub process_file {
    warn("Processing file ...\n");
    sleep 1;
}

__END__

When I run this (Windows XPSP2, Perl 5.8.8 Build 817 from ActiveState, I 
get:

Entering monitor loop
Woke up. Scanning for files...
Sleeping...
Entering factory loop
Dispatching worker thread...
Dispatching worker thread...
Dispatching worker thread...
Dispatching worker thread...
Dispatching worker thread...
Processing file ...
Processing file ...
 ...
Dispatching worker thread...
Processing file ...
Processing file ...
Processing file ...
Processing file ...
Processing file ...
Woke up. Scanning for files...
Sleeping...
Dispatching worker thread...
Dispatching worker thread...
 ...

-- 
A. Sinan Unur <1usa@llenroc.ude.invalid>
(remove .invalid and reverse each component for email address)

comp.lang.perl.misc guidelines on the WWW:
http://augustmail.com/~tadmc/clpmisc/clpmisc_guidelines.html



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

Date: 13 Sep 2006 09:44:55 GMT
From: anno4000@radom.zrz.tu-berlin.de
Subject: Re: localtime is now wrong after server change
Message-Id: <4mq28nF76bqfU1@news.dfncis.de>

Jason <jwcarlton@gmail.com> wrote in comp.lang.perl.misc:
> > "We" used to be helpful?
> >
> > You have never once given help to anyone on CLPM.  Considering your
> > coding skills that is a good thing.

[...]

> Yes, I used to be a regular in this NG. ...
> I posted under a different name;

It would be very easy to name that name.  Until you do I don't believe
you.

> Not that it's any of your business, but I currently own a web design
> firm with more than 15 employees. My job is now day-to-day management
> and the occassional debugging of programs, so while I used to be the
> programmer, I really don't write programs to any large degree. Learn to
> be nice; you'll probably be asking me for a job one day.

I won't.

> > You didn't write that code, you cribbed it from somewhere.  This
> > crap is all over the net, almost literally.  Don't try to pass off
> > (bad) folklore as your own work.
> 
> You're calling me a liar, I'm calling you a tiresome juvenile that's
> quite simply wrong. Prove me wrong,

I have.  The code you used is widely available on the net, ultimately
originating in Matt's script archive.  It's not your work.

> > Of course you can't change the server's time.  It's a good thing
> > you can't because that would be the wrongest thing to do.  You can
> > however change the time zone your program uses and that's what you
> > should have done.  You don't need privileges for that.
> 
> "Wrongest?"

Quite possible in colloquial English.  How is your German?

> Obviously, I was referring to the time zone.

You were?  Then why didn't you change it appropriately?  The "+ 60*60"
kludge shows you have no idea how to use a time zone.

> See, even the wisest of us can make a typing faux pas.

Another lie.

> > Ah, but we all are familiar with the logic of "your" code.  Is that
> > what you're saying?
> 
> Yes, and apparently I was correct. Whether I was tired, and whether you
> are a prick, I got the answer I needed, didn't I?

Every competent coder could find the error in about five minutes.  All
you're proving is your incompetence.

Anno


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

Date: Wed, 13 Sep 2006 18:17:14 +1000
From: "Sisyphus" <sisyphus1@nomail.afraid.org>
Subject: Re: Maximum number of sockets
Message-Id: <4507bf76$0$11968$afc38c87@news.optusnet.com.au>


"A Ma" <angusma@attglobal.net> wrote in message
 .
 .
>
> I suspect I have to recompile Perl but I am using ActiveState Perl and I
> don't have the source. So I am not sure how I can do that. Any further
> suggestions would be helpful.
>

You can get the source, too, from ActiveState ... or you can get the source
from www.perl.org.

Perl-5.8.8 builds easily from source on Win32 using the freely available
MinGW (gcc) compiler - just read the instructions in the Readme.win32 that's
in the top level folder of the perl source.

Looks like the source file you'll need to amend is
win32\include\sys\socket.h.

Cheers,
Rob





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

Date: 13 Sep 2006 08:15:40 GMT
From: Dave Weaver <zen13097@zen.co.uk>
Subject: Re: Modifying and printing a string variable
Message-Id: <4507be2c$0$1390$da0feed9@news.zen.co.uk>

Josef Moellers <josef.moellers@fujitsu-siemens.com> wrote:
>  JC wrote:
> > I have a hash, with key bodybgcolor pointing to a hexadecimal color
> > string "#FF9966". Problem is, I'm not allowed to pring the "#" sign, so
> > I need to print "FEDCBA". How do I do that?
> > 
> 
>  What have you tried and where did it fail to meet your expectations?
> 
>  my $result2; ($string2 = $string) =~ s/^#//;
>  my $result3; ($string3 = $string) =~ tr/^#//d;
> 
>  Pick your choice.

But don't pick the last one! :-)

That tr isn't doing what you think it's doing.

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

my $x="#a^b#c^d";
$x =~ tr/^#//d;
print "$x\n";
__END__

Output:
abcd

Granted, in the specific case of the OP it will do the job required,
but in the same way that a gun will cure a cold.



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

Date: 13 Sep 2006 01:59:56 -0700
From: "andipfaff" <andreas.pfaff@swissonline.ch>
Subject: print cyriilic (UTF-8) characters with PERL on HTML page
Message-Id: <1158137996.856064.56420@p79g2000cwp.googlegroups.com>

Hi there,

beginners question: I have written a small website with a PERL script
which can be viewed in 4 western european languages. Each text to be
displayed is stored in arrays like
$text1[1] = qq(Hallo);
$text1[2] = qq(Salut);
$text1[3] = qq(Saluti);
$text1[4] = qq(Hello);
and printed to STDOUT. Now I want to extend this with cyrillic
characters (5th language: russian). Unfortunately I have no idea how to
do that. I simply tried to cut&paste cyrillic letters from websites
like wikipedia cyrillic aplphabet, but in my Editor (DZSoft) I just get
a question mark when pasting. In Notepad pasting is OK, because he is
capable of UTF-8. DZSoft does not seem to be.

What are the minimum requirements to print a cyrillic character with
PERL into a website? I am working with Windows 2k english or german,
IIS 5 on a W2k Server, ActiveState PERL, and a MySQL database.

The PERL script is using CGI, but HTML code is written directly:
print qq(Content-type: text/html\n\n
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head> etc.

Does anybody can give me a simple script which I can test with Notepad
as en editor?

Thanks in advance
Andi Pfaff



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

Date: 13 Sep 2006 00:30:19 -0700
From: "Noodle" <neilang@gmail.com>
Subject: Re: Wide character issues with HTML Tidy
Message-Id: <1158132619.420291.117360@e3g2000cwe.googlegroups.com>


Noodle wrote:
> Hi,
>
> I have some content which I run html tidy over in perl... only
> occasionally I get a warning "Wide character in print at
> /opt/iw-home/perl/.../Tidy.pm line 133.".
>
> Is there a easy way to convert wide characters to ordinary characters
> so tidy doesn't show this warning??
> 
> TIA.

Don't worry. Worked it out.



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

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.  

NOTE: due to the current flood of worm email banging on ruby, the smtp
server on ruby has been shut off until further notice. 

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


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