[26744] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 8828 Volume: 10

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Thu Jan 5 06:05:37 2006

Date: Thu, 5 Jan 2006 03:05:05 -0800 (PST)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Thu, 5 Jan 2006     Volume: 10 Number: 8828

Today's topics:
    Re: calling subroutine <ebohlman@omsdev.com>
    Re: calling subroutine <noreply@gunnar.cc>
    Re: How to create a coderef from an object-method? <samwyse@gmail.com>
    Re: How to create a coderef from an object-method? (Bruno Boettcher)
    Re: IO::Pipe and loss of data <none@here.com>
        Want metachars escaped so they are not interpreted in r <markus.dehmann@gmail.com>
    Re: Want metachars escaped so they are not interpreted  (Anno Siegel)
        why is perl::ssh so slow ? <kigar@gmx.net>
    Re: why is perl::ssh so slow ? <kigar@gmx.net>
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

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

Date: 5 Jan 2006 09:18:51 GMT
From: Eric Bohlman <ebohlman@omsdev.com>
Subject: Re: calling subroutine
Message-Id: <Xns97422170C5D05ebohlmanomsdevcom@130.133.1.4>

Gunnar Hjalmarsson <noreply@gunnar.cc> wrote in
news:420it4F1gk699U1@individual.net: 

> Please study some tutorial or book from this millenium.

I think you meant "millennium," which has two n's because it comes from the 
Latin root _annus_ (year) which also has two n's.  "Millenium" comes from a 
different Latin root (which, as you might expect, has only one n), and 
although it represents a useful concept (see 
http://www.ratbags.com/rsoles/) it's not particularly applicable here.  Or 
maybe it is; there are a fair number of Perl tutorials and books whose 
quality is so low that they must have been produced by a millenium.


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

Date: Thu, 05 Jan 2006 11:09:38 +0100
From: Gunnar Hjalmarsson <noreply@gunnar.cc>
Subject: Re: calling subroutine
Message-Id: <4249f9F1g89n0U1@individual.net>

Eric Bohlman wrote:
> Gunnar Hjalmarsson wrote: 
>>Please study some tutorial or book from this millenium.
> 
> I think you meant "millennium," which has two n's because it comes from the 
> Latin root _annus_ (year) which also has two n's.  "Millenium" comes from a 
> different Latin root (which, as you might expect, has only one n), and 
> although it represents a useful concept (see 
> http://www.ratbags.com/rsoles/) it's not particularly applicable here.  Or 
> maybe it is; there are a fair number of Perl tutorials and books whose 
> quality is so low that they must have been produced by a millenium.

Thanks for the correction and the link. :)

-- 
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl


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

Date: Thu, 05 Jan 2006 05:06:51 GMT
From: Samwyse <samwyse@gmail.com>
Subject: Re: How to create a coderef from an object-method?
Message-Id: <LP1vf.808$fb4.300@newssvr14.news.prodigy.com>

Bruno Boettcher wrote:
> Hello!
> 
> i am having trouble writing a script for xchat...
> 
> that thing has a method to add new commands or handlers, and that method
> uses coderefs....
> 
> now i have created an object with several methods, and i have a table
> with the commands to add to the client, and now i am trying to find the
> syntax to do this....
> 
> 
> here you can see the different tries i made so far:
> 
> foreach my $cmd (keys(%$commands))
> {
>   #my $funcref =  \&{$this->{"leve"}->($commands->{$cmd})};
>   #my $funcref =  \&Leve::($commands->{$cmd});
>   #my $funcref =  eval("\&{".$this->{"leve"}."->".$commands->{$cmd}."}");
>   #my $funcref =  eval("\&{Leve::".$commands->{$cmd}."}");
>   my $funcref =  eval("sub { ".$this->{"leve"}."->".$commands->{$cmd}."(@_);}");
>   Xchat::hook_command("l".$cmd, $funcref);
>   Xchat::print("added command handler l".$cmd." calling back on $funcref");
> }#foreach my $cmd (keys(%$commands))

What's wrong with this:
   my $funcref =  $this->{"leve"}->($commands->{$cmd});

Have you tried using Data::Dumper to look at your structures?
Looking at your code, $this refers to a hash whose values are coderefs, 
each of which takes a scalar and returns something, I presume a coderef.
   print Dumper($this);
   print Dumper($commands);


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

Date: 05 Jan 2006 08:37:20 GMT
From: bboett@bboett.dyndns.org (Bruno Boettcher)
Subject: Re: How to create a coderef from an object-method?
Message-Id: <43bcdac0$0$12113$636a15ce@news.free.fr>

In article <43bc346e$0$19914$626a54ce@news.free.fr>,
Bruno Boettcher <bboett@adlp.org> wrote:

hi again

ok, seems i haven't given enough code...

to complete:

Leve.pm:
package Leve;
our(%commands);


sub new 
{
  my ($class) = @_;
  my $this = {
    "commands"	=> \%commands,
    #lots of other class vars#
  };

  bless ($this, $class);
  return $this;
}# sub new 

sub print { ...  ; }
$commands{"print"} = "print";
sub leve_list { ... ; }
$commands{"list"} = "leve_list";
sub leve_clear { ... ;} 
$commands{"clear"} = "leve_clear";
etc...

then in xchat2Handler:
$this->{"leve"} = new Leve();
$commands = $this->{"leve"}->{"commands"};
>foreach my $cmd (keys(%$commands))
>{
>  my $funcref =  eval("sub { ".$this->{"leve"}."->".$commands->{$cmd}."(@_);}");
#eg for list:
#my $funcref = eval("sub { ".$this->{"leve"}."->leve_list(@_);}");
#resulting in a reference to the method: Leve::leve_list($this,@_);
>  Xchat::hook_command("l".$cmd, $funcref);
>  Xchat::print("added command handler l".$cmd." calling back on $funcref");
>}#foreach my $cmd (keys(%$commands))

  so i don't think i can access the method coderefs as if they were hash
  values....


thanks for your help!
-- 
ciao bboett
==============================================================
bboett@adlp.org
http://inforezo.u-strasbg.fr/~bboett


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

Date: Thu, 5 Jan 2006 09:34:12 +0100
From: "Genevieve S." <none@here.com>
Subject: Re: IO::Pipe and loss of data
Message-Id: <dpilm6$d9i$1@news.sap-ag.de>

Hello again,

> How much time do you expect that to take?
I cannot express this in seconds or anything but as reading from any pipe 
blocks until there is anything to read, I have to build in a mechanism that 
shortens that waiting time. Whatever that is (I have at least something like 
that already for another 'special' child) it takes much more longer to be 
used 71 times than a single <pipehandle> does.

> After you chop it to remove the irrelevant parts, you need to sew it back
> up again (and verify it still shows the problem).
I choped it as much as it was possible, but it did not yet show up the 
error. May be I cut too much, but as the last run of my big script was fine 
for 6 hours before the error appeared I think it is just not easy to 
reproduce the error.
Anyway I put some code at the end of this message, which should run and show 
at least how I work to send a message and use the pipe.

> You could try "flock"ing the write handle before each write, but I doubt
> that will help.
I do not have a clue how this could work, so I am willing to believe xhoster 
that this does not really work with Linux (which I use). But this will work 
with named pipes - so maybe I will just switch that type to see if the error 
still exists.

> I think this problem is much more complicated than you
> think it is.  Look into IO::Select.
That first sentence is not making an easy day :) I had a look again to 
IO::Select - what I tried to use to find out if my pipe is readable (which 
was quite nonsense, as there is a difference between the shown 'open to 
read' and the searched 'something in to be read'). I thought it might help 
to use has_exception(), but it did not find any on the pipe, even directly 
after there was a lost message. But maybe I just launched into that function 
and did not recognize what you really wanted me to have a look at.

> IO::Pipe is just a pretty layer over the built-in pipe().  Personally,
> now that we have handle autovivification,  I'd not bother and just say:
>
>  pipe(my $reader, my $writer) or die $!;
I cut that out and replaced it with IO::Pipe as this seemed to be working 
with IO::Select (what seems to expect an object). But that seems obsolete 
now anyway.

> Anyhow - FIFOs should be lossless no matter how many writers there are.
I think you're right, that might be my next step to try.

Only thing left now is that I'm scared wether my errors do depend on 
different writers to the same pipe or the amount of data waiting in the pipe 
to be read. As the errors occuring yesterday after 6 hours where 5 in a 
period of only one minute.

Anyway, thanks for your help, I have at least now some hints how to proceed!


******************************************************
These are the remains of my code. But please use with care. It is an endless 
loop so you have to stop it manually and if it runs to long, it will have an 
enormously amount of data in the pipe (this is because in original script 
the line to be sent is assembled after a line of a logfile is read via tail. 
In this version there is always the same line to be send, which is very fast 
and does never have a break between lines).

Sadly I must say I did not yet received the error with this...
As logging of the script is nearly the same in my big one, I'd like to show 
you what I got yesterday:
my_log>>>>>
Wed Jan  4 13:22:17 2006 script started 24687
[...]
Wed Jan  4 13:49:56 2006 log reader started for 3070: 14508
Wed Jan  4 19:40:27 2006 Server 3201: Missing message between 54 and 56
Wed Jan  4 19:40:27 2006 Server 1665: Missing message between 38 and 40
Wed Jan  4 19:40:30 2006 Server 4002: Missing message between 9 and 11
Wed Jan  4 19:40:40 2006 Server 3022: Missing message between 52 and 61
Wed Jan  4 19:55:25 2006 Server 3025: Missing message between 70 and 74
<<<<<

script>>>>>>>>>>>>>>>>>>>>>>>
#!/usr/bin/perl

use strict;
use warnings;

use IO::Pipe;
$|++;

####################################
#####  Variable's declaration  #####
####################################
my %avl_server_ports;               # saves all servers for which we have 
data incl. their portsprocess)
# first get the updated server list from db[...]
# to change number of created children change loop condition here
for(1..30){
 $avl_server_ports{$_} = $_;
}

my $server;                    # name of the server to be processed (for 
child processes)
my %proc_counter;                 # ID for the procs (used in child procs)

my $logFile;                   # contains the name of the logfile for this 
script

my $msid = 1;                   # the message id used on child-side
my %mshash;                    # actual message id per server used on father 
side

###########################
#####  Main programm  #####
###########################

writeLog('create');

# creation of pipes used to communicate with cmd-child and log-file readers
my $pipe_log = new IO::Pipe();


 # start the initial creation of all log-file-readers
 syncLFR();
 $pipe_log->reader();

 # starting of working routine
 while(1){
  # do some other things...

  # read the next info about processes
  logProcessing();
 }


#####  this is the task of a log-file-reader  #####
###################################################
sub logReader{
 my $server = shift;
 writeLog("log reader started for $server: $$");
 $pipe_log->writer();

 # and ensure not to buffer
 $pipe_log->autoflush(1);

 my $sentence = "2005/08/16 02:00:44 pid 27009 compute end 2s 90+30us 
211+0io 0+0net 0k 103pf\n";

 while(1){
  sendWithMsId($server.'::'.$sentence);
 }# end of while 1
} # end of sub: logReader


#####  fathers routine to get the processes out of the pipe and handle them 
correct  #####
##########################################################################################
sub logProcessing{
 my $line = '';
 my ($msg, $server);
 eval {
   local $SIG{ALRM} = sub { die "lesedauer" };
   alarm(1);
   $line = <$pipe_log>;
   alarm(0);
 };

 return if ($line !~ /::/);
 ($msg, $server, $line) = split(/::/, $line);

 if(!exists $mshash{$server}){
  $mshash{$server} = $msg;
 }else{
  if($msg != $mshash{$server} +1){
   writeLog("Server $server: Missing message between $mshash{$server} and 
$msg");
  }
  $mshash{$server} = $msg;
 }
} # end of sub: logProcessing



#####  write the log file             #####
###########################################
sub writeLog{
 my ($msg) = @_;

# IF YOU DO NOT WANT TO HAVE A PRINT IN YOUR COMMAND LINE
# YOU CAN CHANGE COMMENTS HERE TO WRITE A LOGFILE INSTEAD

 if($msg eq 'create'){
#  #my $day = getTodaysDate();
#  my $day = '2006/01/05';
#  $day =~ s/\///g;
#  my $count = 1;
#
#  open(LS, "2>&1 ls log/log$day.* | ");
#  while(<LS>){
#   if(my ($c) = /log$day.(\d+)/){
#    $count++ if($c == $count);
#   }
#  }
#  close(LS);
#  $logFile = "log/log".$day.".".$count;
#  open(LOG, ">$logFile");
#  print LOG localtime(time) . " script started $$\n";
#  close(LOG);
  print localtime(time) . " script started $$\n";
 }
 # write the message in the logfile
 else{
#  open(LOG, ">>$logFile");
#  print LOG localtime(time) . " " . $msg . "\n";
#  close(LOG);
  print localtime(time) . " " . $msg . "\n";
 }
}

##### sends messages to the father and adds a message ID #####
##############################################################
sub sendWithMsId{
 my $info = shift;

 print $pipe_log $msid.'::'.$info;
 $msid++;
}

#####  Synchronization of log-file-readers according to avl. servers  #####
###########################################################################
sub syncLFR{

 # start lfr for all servers, which were not in the list already
 foreach  my $newServer (keys %avl_server_ports){
  my $server = $newServer;
  my $forked_pid = fork();

  # this is the new log-file-reader
  if(!$forked_pid){
   logReader($server);
   exit(0);
  }

 }
} # end of sub: snycLFR




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

Date: Thu, 05 Jan 2006 01:13:48 -0500
From: Markus Dehmann <markus.dehmann@gmail.com>
Subject: Want metachars escaped so they are not interpreted in regexp
Message-Id: <423rokF1glm40U1@individual.net>

I have a pattern that I want to match against some text. The pattern may 
contain some chars that happen to be metachars, but I don't want them to 
be interpreted as metachars:

my $pattern = 'Hello...?';
$_ = 'Oh Hello x';
if(m/$pattern/){
   print "Oh no, it matches!\n"; # it matches indeed!
}

How do I prepare the $pattern properly before using it in the regexp?

I used something like this:

sub encode {
   my $s = $_[0];
   $s =~ s/(.)/sprintf "\\x%x",ord($1)/ge;
   return $s;
}

to encode the pattern before using it in the regexp, but I think it's 
inefficient and inelegant...?

Does anyone have a better escape function?

Thanks!
Markus

P.S.: I'm sorry if this is a FAQ (it should be!), but I googled and 
didn't find anything.


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

Date: 5 Jan 2006 08:27:58 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: Want metachars escaped so they are not interpreted in regexp
Message-Id: <dpilae$mb$2@mamenchi.zrz.TU-Berlin.DE>

Markus Dehmann  <markus.dehmann@gmail.com> wrote in comp.lang.perl.misc:
> I have a pattern that I want to match against some text. The pattern may 
> contain some chars that happen to be metachars, but I don't want them to 
> be interpreted as metachars:

perldoc -f quotemeta

Anno
-- 
If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article.  Click on 
"show options" at the top of the article, then click on the 
"Reply" at the bottom of the article headers.


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

Date: Thu, 5 Jan 2006 11:38:16 +0100
From: "Reinhard Glauber" <kigar@gmx.net>
Subject: why is perl::ssh so slow ?
Message-Id: <43bcf71d$0$7405$9b4e6d93@newsread2.arcor-online.net>

DQppZiBJIHVzZSBwdXR0eSB0byBjb25uZWN0IHRvIGEgc3NoIHNlcnZlciBpdCB0YWtlcyBqdXN0
IDEgb3IgMiBzZWNvbmRzDQoNCmJ1dCB3aXRoIHRoZSBwZXJsOjpzc2ggbW9kdWxlIGl0IHRha2Vz
IGFib3V0IDEwIHNlY29uZHMsIGFuZCB0aGUgImRpciIgY29tbWFuZCBpcyBub3QgZXhlY3V0ZWQg
KGl0cyBvcGVuc3NoIG9uIGEgd2luZG93cyBtYWNoaW5lKQ0KDQp0aGFua3MNCg0KdXNlIE5ldDo6
U1NIOjpQZXJsOw0KDQpteSAkaG9zdCA9ICcxOTIuMTY4LjMuMjM1JzsNCm15ICR1c2VyID0gJ3N1
c2knOw0KbXkgJGNtZCA9ICdkaXInOw0KbXkgJHBhc3N3b3JkID0gJ2hlbHBtZSc7IA0KDQpteSAk
c3NoID0gTmV0OjpTU0g6OlBlcmwtPm5ldygkaG9zdCwgcG9ydD0+MjIpOw0KDQogICAgJHNzaC0+
bG9naW4oJHVzZXIsICRwYXNzd29yZCk7DQogICAgbXkoJG91dCwgJGVycikgPSAkc3NoLT5jbWQo
JGNtZCk7DQogICAgcHJpbnQgJG91dDsgDQogDQogDQo=



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

Date: Thu, 5 Jan 2006 11:41:23 +0100
From: "Reinhard Glauber" <kigar@gmx.net>
Subject: Re: why is perl::ssh so slow ?
Message-Id: <43bcf7d6$0$26913$9b4e6d93@newsread4.arcor-online.net>

b2ssIGhlcmUgaXN0IHRoZSBkZWJ1Zy1vdXRwdXQgIC4uIGlmIGl0IGhlbHBzIDstKQ0KDQpub2Jv
ZHk6IFJlYWRpbmcgY29uZmlndXJhdGlvbiBkYXRhIC9ob21lL0V4cGxvcmVyLy5zc2gvY29uZmln
DQpub2JvZHk6IFJlYWRpbmcgY29uZmlndXJhdGlvbiBkYXRhIC9ldGMvc3NoX2NvbmZpZw0Kbm9i
b2R5OiBDb25uZWN0aW5nIHRvIDE5Mi4xNjguMy4yMzUsIHBvcnQgMjIuDQpub2JvZHk6IFJlbW90
ZSBwcm90b2NvbCB2ZXJzaW9uIDIuMCwgcmVtb3RlIHNvZnR3YXJlIHZlcnNpb24gT3BlblNTSF8z
LjguMXAxDQpub2JvZHk6IE5ldDo6U1NIOjpQZXJsIFZlcnNpb24gMS4yOSwgcHJvdG9jb2wgdmVy
c2lvbiAyLjAuDQpub2JvZHk6IE5vIGNvbXBhdCBtYXRjaDogT3BlblNTSF8zLjguMXAxLg0Kbm9i
b2R5OiBDb25uZWN0aW9uIGVzdGFibGlzaGVkLg0Kbm9ib2R5OiBTZW50IGtleS1leGNoYW5nZSBp
bml0IChLRVhJTklUKSwgd2FpdCByZXNwb25zZS4NCm5vYm9keTogQWxnb3JpdGhtcywgYy0+czog
M2Rlcy1jYmMgaG1hYy1zaGExIG5vbmUNCm5vYm9keTogQWxnb3JpdGhtcywgcy0+YzogM2Rlcy1j
YmMgaG1hYy1zaGExIG5vbmUNCm5vYm9keTogRW50ZXJpbmcgRGlmZmllLUhlbGxtYW4gR3JvdXAg
MSBrZXkgZXhjaGFuZ2UuDQpub2JvZHk6IFNlbnQgREggcHVibGljIGtleSwgd2FpdGluZyBmb3Ig
cmVwbHkuDQpub2JvZHk6IFJlY2VpdmVkIGhvc3Qga2V5LCB0eXBlICdzc2gtZHNzJy4NCm5vYm9k
eTogSG9zdCAnMTkyLjE2OC4zLjIzNScgaXMga25vd24gYW5kIG1hdGNoZXMgdGhlIGhvc3Qga2V5
Lg0Kbm9ib2R5OiBDb21wdXRpbmcgc2hhcmVkIHNlY3JldCBrZXkuDQpub2JvZHk6IFZlcmlmeWlu
ZyBzZXJ2ZXIgc2lnbmF0dXJlLg0Kbm9ib2R5OiBXYWl0aW5nIGZvciBORVdLRVlTIG1lc3NhZ2Uu
DQpub2JvZHk6IEVuYWJsaW5nIGluY29taW5nIGVuY3J5cHRpb24vTUFDL2NvbXByZXNzaW9uLg0K
bm9ib2R5OiBTZW5kIE5FV0tFWVMsIGVuYWJsZSBvdXRnb2luZyBlbmNyeXB0aW9uL01BQy9jb21w
cmVzc2lvbi4NCm5vYm9keTogU2VuZGluZyByZXF1ZXN0IGZvciB1c2VyLWF1dGhlbnRpY2F0aW9u
IHNlcnZpY2UuDQpub2JvZHk6IFNlcnZpY2UgYWNjZXB0ZWQ6IHNzaC11c2VyYXV0aC4NCm5vYm9k
eTogVHJ5aW5nIGVtcHR5IHVzZXItYXV0aGVudGljYXRpb24gcmVxdWVzdC4NCm5vYm9keTogQXV0
aGVudGljYXRpb24gbWV0aG9kcyB0aGF0IGNhbiBjb250aW51ZTogcHVibGlja2V5LHBhc3N3b3Jk
LGtleWJvYXJkLWkNCnRlcmFjdGl2ZS4NCm5vYm9keTogTmV4dCBtZXRob2QgdG8gdHJ5IGlzIHB1
YmxpY2tleS4NCm5vYm9keTogTmV4dCBtZXRob2QgdG8gdHJ5IGlzIHBhc3N3b3JkLg0Kbm9ib2R5
OiBUcnlpbmcgcGFzc3dvcmQgYXV0aGVudGljYXRpb24uDQpub2JvZHk6IExvZ2luIGNvbXBsZXRl
ZCwgb3BlbmluZyBkdW1teSBzaGVsbCBjaGFubmVsLg0Kbm9ib2R5OiBjaGFubmVsIDA6IG5ldyBb
Y2xpZW50LXNlc3Npb25dDQpub2JvZHk6IFJlcXVlc3RpbmcgY2hhbm5lbF9vcGVuIGZvciBjaGFu
bmVsIDAuDQpub2JvZHk6IGNoYW5uZWwgMDogb3BlbiBjb25maXJtIHJ3aW5kb3cgMCBybWF4IDMy
NzY4DQpub2JvZHk6IEdvdCBjaGFubmVsIG9wZW4gY29uZmlybWF0aW9uLCByZXF1ZXN0aW5nIHNo
ZWxsLg0Kbm9ib2R5OiBSZXF1ZXN0aW5nIHNlcnZpY2Ugc2hlbGwgb24gY2hhbm5lbCAwLg0Kbm9i
b2R5OiBjaGFubmVsIDE6IG5ldyBbY2xpZW50LXNlc3Npb25dDQpub2JvZHk6IFJlcXVlc3Rpbmcg
Y2hhbm5lbF9vcGVuIGZvciBjaGFubmVsIDEuDQpub2JvZHk6IEVudGVyaW5nIGludGVyYWN0aXZl
IHNlc3Npb24uDQpub2JvZHk6IFNlbmRpbmcgY29tbWFuZDogZGlyDQpub2JvZHk6IFJlcXVlc3Rp
bmcgc2VydmljZSBleGVjIG9uIGNoYW5uZWwgMS4NCm5vYm9keTogY2hhbm5lbCAxOiBvcGVuIGNv
bmZpcm0gcndpbmRvdyAwIHJtYXggMzI3NjgNCm5vYm9keTogY2hhbm5lbCAxOiByY3ZkIGVvZg0K
bm9ib2R5OiBjaGFubmVsIDE6IG91dHB1dCBvcGVuIC0+IGRyYWluDQpub2JvZHk6IGNoYW5uZWwg
MTogb2J1ZiBlbXB0eQ0Kbm9ib2R5OiBjaGFubmVsIDE6IG91dHB1dCBkcmFpbiAtPiBjbG9zZWQN
Cm5vYm9keTogY2hhbm5lbCAxOiBjbG9zZV93cml0ZQ0Kbm9ib2R5OiBpbnB1dF9jaGFubmVsX3Jl
cXVlc3Q6IHJ0eXBlIGV4aXQtc3RhdHVzIHJlcGx5IDANCm5vYm9keTogY2hhbm5lbCAxOiByY3Zk
IGNsb3NlDQpub2JvZHk6IGNoYW5uZWwgMTogaW5wdXQgb3BlbiAtPiBjbG9zZWQNCm5vYm9keTog
Y2hhbm5lbCAxOiBjbG9zZV9yZWFkDQpub2JvZHk6IGNoYW5uZWwgMTogc2VuZCBjbG9zZQ0Kbm9i
b2R5OiBjaGFubmVsIDE6IGZ1bGwgY2xvc2Vk



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

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


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