[24547] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 6725 Volume: 10

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Thu Jun 24 18:05:54 2004

Date: Thu, 24 Jun 2004 15:05:10 -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           Thu, 24 Jun 2004     Volume: 10 Number: 6725

Today's topics:
    Re: [Newbie] Stupid problem need simple answer (Array & <daedalus@videotron.ca>
    Re: [SortofNewbie] Addusers with script on crontab <hotten@zonnet.nl>
    Re: [SortofNewbie] Addusers with script on crontab <hotten@zonnet.nl>
        eof and nested while (<$fh>) {...} (Greg Bacon)
    Re: eof and nested while (<$fh>) {...} <skuo@mtwhitney.nsc.com>
        error logs... <johnjcarbone@nospam.hotmail.com>
    Re: error logs... <hotten@zonnet.nl>
    Re: error logs... <fergus.toolan@ucd.ie>
    Re: error logs... <mritty@gmail.com>
    Re: error logs... <1usa@llenroc.ude>
    Re: error logs... <johnjcarbone@nospam.hotmail.com>
    Re: error logs... <mritty@gmail.com>
    Re: error logs... <johnjcarbone@nospam.hotmail.com>
    Re: error logs... <johnjcarbone@nospam.hotmail.com>
    Re: error logs... <johnjcarbone@nospam.hotmail.com>
    Re: error logs... <mritty@gmail.com>
    Re: error logs... <johnjcarbone@nospam.hotmail.com>
    Re: error logs... <mritty@gmail.com>
    Re: error logs... <johnjcarbone@nospam.hotmail.com>
        How to disable Unicode? <h.b.furuseth@usit.uio.no>
    Re: Logfile scanning assistance <squidsonata@hotmail.com>
        Perl Programmers Needed 4-6 month contract position (Brigitte)
    Re: problem to setup a socket <bobsmith@[spamguard]jippii.fi>
    Re: problem to setup a socket <mritty@gmail.com>
    Re: problem to setup a socket <mritty@gmail.com>
    Re: REGEX Negation <rustyp@freeshell.org>
    Re: Regexp, Strings and spaces <1usa@llenroc.ude>
    Re: Strange Behaviour with Hash??? <bmb@ginger.libs.uga.edu>
    Re: Strange Behaviour with Hash??? <fergus.toolan@ucd.ie>
    Re: Strange Behaviour with Hash??? <mritty@gmail.com>
    Re: WWW::RobotRules <boatingN.O.S.P.A.M@cox.net>
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

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

Date: Thu, 24 Jun 2004 17:46:24 -0400
From: "Daedalus" <daedalus@videotron.ca>
Subject: Re: [Newbie] Stupid problem need simple answer (Array & RegExp)
Message-Id: <VWHCc.5981$uY3.301128@wagner.videotron.net>

> > > > > Your code (in all variants) has another problem.  You are not
supposed
> > > > > to change an array while running a for-loop over it.  (See
"foreach"
> > in
> > > > > perlsyn, I suppose.)  That it appears to work in this instance
doesn't
> > > > > mean it will with other versions of Perl.
> > > >
> > > > AFAIK you are not supposed to change the array, but changing the
aliased
> > > > elements should be ok.
> > > >
> > > > so:
> > > >
> > > > push(@array, $_) for @array # not recommended
> > > >
> > > > s/A/B/g for @array          # ok
> > > >
> > > > Right?
> > >
> > > Right.
> >
> > Well the problem is that s///g don't do what I want, since it change
every
> > thing at the same time.
>
> If you only want to change the first occurance in each string then
> remove the /g.
>
> If you want to append the changed version of the array to the original
> array then why not:
>
>   s/A/B/g for my @array_copy = @array;
>   push @array, @array_copy;
>
> > Anyway (for now) it couldn't turn into an infinite loop, since the
content
> > of the loop...
>
> I asume you are talking about the effect of pushing into @array at the
> same time with for().
>
> How do you know that?
>
> Bare in mind that the behaviour of for() when iterating over an array
> that grows or shrinks is _undefined_.  Undefined means anything could
> happen, and also the thing that happens now may not be the thing that
> happens in the next version of Perl.
>
> If tomorrow the behaviour of pushing onto the array was to cause the
> loop to reset to the start of the array then it could very well create
> an infinite loop.
>
> > I know it's not the perfect solution (and I'll try to find a better way
> > while i'm on my learning process), so if someone have any idea... I'd be
> > glad to correct this misuse.
>
> See several better solutions already given in this thread.

Well sorry but at this time there no solutions in this thread that would
behave like I want.
Assuming that @string_list contain one string that is "to the bookstore"

 foreach (@string_list){
    my $string = $_;
      push @string_list, $string if $string =~ s/(^to\b|^the\b)\s*//i;
 }
this code would end with ("to the bookstore", "the bookstore", "bookstore")
and thats exactly the result i'm looking for.
While every other solutions proposed in the thread would end with ("to the
bookstore","the bookstore") or ("to the bookstore","bookstore") depending
wich of s///i or s///gi (or the map) is used.

Anyway if there's a way to do exactly the same thing with proper codes, it
would popup in my mind sooner or later, or in this newsgroup.

Thanks
DAE




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

Date: Thu, 24 Jun 2004 20:25:12 +0200
From: "Henk" <hotten@zonnet.nl>
Subject: Re: [SortofNewbie] Addusers with script on crontab
Message-Id: <40db1a8f$1_10@Output.100ProofNews.com>


"Gunnar Hjalmarsson" <noreply@gunnar.cc> wrote in message
news:2k0j4kF16jbckU1@uni-berlin.de...
> Henk wrote:
> > Ok guy's i need some help i have to create allot of users on an new
> > webserver (also the must have ftp access vistualhost and so on)
> > i've got an script allready but there comes an new user (and here
> > it comes) i don't know how to check if the username already exists
> > in linux and perl how can i do this ? is there any one who allready
> > has done thius please show me an snippet of that code ;)
>
> Unfortunately I don't have such a script.
>
> Where can I sign up for an account on your server?
>
> -- 
> Gunnar Hjalmarsson
> Email: http://www.gunnar.cc/cgi-bin/contact.pl

That's a shame ;(
Sorry but u can't sign up for it (yet ;) ) it's for an private collage
network
btw.. sorry for the crappy english but i hope you all understand what i am
trying to write here ;)




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

Date: Thu, 24 Jun 2004 20:27:36 +0200
From: "Henk" <hotten@zonnet.nl>
Subject: Re: [SortofNewbie] Addusers with script on crontab
Message-Id: <40db1b1a$1_12@Output.100ProofNews.com>


"Henk" <hotten@zonnet.nl> wrote in message
news:40db1a8f$1_10@Output.100ProofNews.com...
>
> "Gunnar Hjalmarsson" <noreply@gunnar.cc> wrote in message
> news:2k0j4kF16jbckU1@uni-berlin.de...
> > Henk wrote:
> > > Ok guy's i need some help i have to create allot of users on an new
> > > webserver (also the must have ftp access vistualhost and so on)
> > > i've got an script allready but there comes an new user (and here
> > > it comes) i don't know how to check if the username already exists
> > > in linux and perl how can i do this ? is there any one who allready
> > > has done thius please show me an snippet of that code ;)
> >
> > Unfortunately I don't have such a script.
> >
> > Where can I sign up for an account on your server?
> >
> > -- 
> > Gunnar Hjalmarsson
> > Email: http://www.gunnar.cc/cgi-bin/contact.pl
>
> That's a shame ;(
> Sorry but u can't sign up for it (yet ;) ) it's for an private collage
> network
> btw.. sorry for the crappy english but i hope you all understand what i am
> trying to write here ;)
>
>

Btw this is what i made up so far ;)
#!/usr/bin/perl

use HTTP::Request;
use HTTP::Response;
use LWP::UserAgent;

$PrintDebug = 1; # Print debugging information
$baseURL = "Url to asp file with data";
$ip = &get_ip();

sub Debug(@){
        $strDebug = shift;
        if ($PrintDebug == 1) { print("$strDebug\n"); }
}

sub get_ip {
  my ($myip, @iparr) = (undef, []);
  $_ = `ifconfig`;
  @iparr = /inet addr:(\d+\.\d+\.\d+\.\d+)/ig;
  $myip = $iparr[0];
  return $myip;
}

# Aanspreken hosting.asp file via http request
     sub ExecHttpReq(@)
{
         my $URL = shift;
         my $ua = new LWP::UserAgent;
         $ua->agent( "Routit Backend");
         die "No useragent" unless defined($ua);
         $req = new HTTP::Request('GET',$URL);
         return $ua->request($req);
}

$response = ExecHttpReq("$baseURL/hosting.asp");

if( !$response->is_success ){
    print $response->status_line;
    print " FAILED\n";
    exit 1;
}

# splitten van hosting.asp file voor het gebruiken van de data
@lines = split /\n/, $response->content;
for( $i=0; $i<= $#lines; $i++ ){
        ($ID,        $ProductCode,    $DealerKlantID,
        $Naam,       $DealerID,       $Bedrijf,
        $Username,   $Password,       $Domainname,
        $ASP,        $PHP,            $Stats,
        $Tag,        $server) = split /\t/, $lines[$i];
        $status = 0; #OK, account created

# Kijken of de hosting niet voor windows is
        chomp $PHP;
        chomp $Tag;
        if($PHP =~ /true/) {
                $status = createuser($Username, $Password);
                $status = createvirtualhost();
        #        updatestatus($ID, $status);
                           }
                # Kijken of dat er stats nodig zijn
  if($Stats=~ /true/) {
          $status = awstats();
             }
  if($Tag =~ /2/) {
                $status = deleteall();
                  }
  if($Tag=~ /3/){
    $status = deletestats();
                      }

# Sub maken van user
sub createuser(@) {
        Debug ("Making User");
        chomp $Username;
        Debug("Setting Password");
        chomp $Password;
        system("adduser -g webusers -d /var/www/$Domainname $Username");
        system("echo \"$Password\" | /usr/bin/passwd --stdin $Username");
        Debug("User added...");
        chmod (0750, "/var/www/$Domainname");
        Debug("Setting permissions...");
        return 0; # account create
}

# Sub hosting status
sub updatestatus(@) {
        ExecHttpReq("$baseURL/hosting.asp?ID=$ID#Status=$status");
}

# Sub voor het maken van Virtualhosts
sub createvirtualhost(@) {
        Debug("setting domainname");
        Debug( "mkdir $Domainname");
        print("mkdir() ", mkdir("/etc/httpd/conf/virtualhosts/$Bedrijf",
0750),"\n");
        print "making apache virtualhost dir\n";
        open(APACHECONF,
">/etc/httpd/conf/virtualhosts/$Bedrijf/$Domainname.conf");
        $strCONF = "<VirtualHost $ip>\n";
        $strCONF .= "\tDocumentRoot /var/www/$Domainname\n";
        $strCONF .= "\tServerName $Domainname\n";
        $strCONF .= "\tServerAlias www.$Domainname\n";
        $strCONF .= "\tServerAdmin webmaster\@$Domainname\n";
        $strCONF .= "\tErrorLog logs/$Domainname.error.log \n";
        $strCONF .= "\tCustomLog /var/log/httpd/$Domainname.log combined\n";
        $strCONF .= "</VirtualHost>\n";
        print APACHECONF $strCONF;
        print "helemaal klaar !\n";
        close(APACHECONF);
        return 0; # Virtual host file created
}

print "Restarting Apache deamon\n";
system("killall -HUP httpd");
print "Klaar.\n";

# Sub voor het maken van de AWStats
sub awstats(@) {
    Debug ("Making the dir and setting the awstats settings");
    print("mkdir() ", mkdir("/var/www/$Domainname/stats", 0750),"\n");
    print("chmod() ", chmod(".R /var/www/$Domainname/stats/", 0750),"\n");
    system("cp -R /sys/scripts/awstats/icon/ /var/www/$Domainname/stats/");
    system("chown -R root:webusers /var/www/$Domainname/stats");

# Het openen en editten van de template van awstats..

    $domain = "$Domainname";
    open(TEMPLATE, "</sys/scripts/awstats/awstats.conf");
    open(CONFIG, "> /etc/awstats/awstats.$Domainname.conf");
    @TEMPLATE=<TEMPLATE>;
    for (@TEMPLATE) {
        s/<DOMAIN>/$Domainname/g;
    }

    print CONFIG "@TEMPLATE\n";
    close TEMPLATE;
    close CONFIG;

    return 0; # awstats done !


 }

sub deleteall(@) {
 Debug ("Setting up for all delete");
 print ("rm() ", rm("/var/www/$Domainname/stats"),"\n"); # lets see if this
works
 print ("rm() ", rm("/var/www/$Domainname"),"\n"); # lets see if this works
 print ("rm() ", rm("/etc/httpd/conf/virtualhosts/$Bedrijf"),"\n");
   # print ("rm() ", rm("/etc/awstats/awstats.$Domainname.conf"),"\n);

}
#sub deletestats(@) {
 }




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

Date: Thu, 24 Jun 2004 18:30:50 -0000
From: gbacon@hiwaay.net (Greg Bacon)
Subject: eof and nested while (<$fh>) {...}
Message-Id: <10dm7eqg87j16f7@corp.supernews.com>

I was writing code to scan an assembly-language definition of
operational data and produce a report and ended up writing code
that gave me the "there has to be a better way" feeling.

Single parameters are easy to spot, e.g.,

    label1 .word  1234ABCDh
    label2 .float 3.14159

Most arrays are trivial too:

    label3 .word 1, 2, 3

Array specifications can span multiple lines, however.  For example:

    label4 .float 0.0, 0.5, 1.0
           .float 1.5, 2.0, 2.5

At first, I used a regular expression to feed individual values into
a sub that kept track of the last label grabbed and determined whether
the current value was a new parameter or a continuation of an array.

The code -- and the approach, really -- was unsatisfying, so I
considered a two-pass scan: grab and decompose the chunks and then
coalesce the arrays in a second pass.  I made a start in that
direction but didn't like the way it was playing out.

I saw that scanning an entire array would be straightforward too.
I could safely look ahead.  Lines without labels continued the
current array, and I could pretend the values were on one line by
appending to the end of what I've already recognized.

If the lookahead line had a label, I could process what I had and then
C<redo> to process the lookahead line that's already in $_.

Here's a sketch of the code:

    while (<$fh>) {
        next unless /^(\w+)\s+\.(word|float)\s+(.+?),?\s*$/;
        my($label,$type,$data) = ($1,$2,$3);


        # look for continued spec
        my $needredo = 0;
        while (<$fh>) {
            if (/^\s*\.(word|float)\s+(.+?),?\s*$/) {
                $data .= ", $2";
            }
            else {
                $needredo = 1;
            }
        }

        # now $label, $type, and $data comprise an
        # entire parameter
        ...;

        redo if $needredo;
    }

That's already kind of klunky, but I also saw that the inner while loop
will exhaust the input, which the outer loop's implicitly tests too.  I
tested for C<eof $fh> at each iteration of the inner loop and reset
$needredo if I needed to C<last> out of the inner loop.

The code now feels very klunky.  Is there a more elegant way to code
this scan?

Greg
-- 
A democracy is nothing more than mob rule, where fifty-one percent of
the people may take away the rights of the other forty-nine.
    -- Thomas Jefferson


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

Date: Thu, 24 Jun 2004 13:18:48 -0700
From: Steven Kuo <skuo@mtwhitney.nsc.com>
Subject: Re: eof and nested while (<$fh>) {...}
Message-Id: <Pine.GSO.4.21.0406241314420.22575-100000@mtwhitney.nsc.com>

On Thu, 24 Jun 2004, Greg Bacon wrote:

> I was writing code to scan an assembly-language definition of
> operational data and produce a report and ended up writing code
> that gave me the "there has to be a better way" feeling.
> 
> Single parameters are easy to spot, e.g.,
> 
>     label1 .word  1234ABCDh
>     label2 .float 3.14159
> 
> Most arrays are trivial too:
> 
>     label3 .word 1, 2, 3
> 
> Array specifications can span multiple lines, however.  For example:
> 
>     label4 .float 0.0, 0.5, 1.0
>            .float 1.5, 2.0, 2.5
> 

(snipped)

> Here's a sketch of the code:
> 
>     while (<$fh>) {
>         next unless /^(\w+)\s+\.(word|float)\s+(.+?),?\s*$/;
>         my($label,$type,$data) = ($1,$2,$3);
> 
> 
>         # look for continued spec
>         my $needredo = 0;
>         while (<$fh>) {
>             if (/^\s*\.(word|float)\s+(.+?),?\s*$/) {
>                 $data .= ", $2";
>             }
>             else {
>                 $needredo = 1;
>             }
>         }
> 
>         # now $label, $type, and $data comprise an
>         # entire parameter
>         ...;
> 
>         redo if $needredo;
>     }
> 
> That's already kind of klunky, but I also saw that the inner while loop
> will exhaust the input, which the outer loop's implicitly tests too.  I
> tested for C<eof $fh> at each iteration of the inner loop and reset
> $needredo if I needed to C<last> out of the inner loop.
> 
> The code now feels very klunky.  Is there a more elegant way to code
> this scan?
> 




I don't think nested loops are needed.  How about:

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

my ($label, $type, $data);

while (<DATA>) {
    if (/^\s*\.(word|float)\s+(.+?),?\s*$/) {
	$data .= ", $2";
    } elsif (/^(\w+)\s+\.(word|float)\s+(.+?),?\s*$/) {
	do_stuff($label, $type, $data) if ($label); # previously found label
	($label, $type, $data) = ($1, $2, $3);
    }

}

do_stuff($label, $type, $data) if ($label);

sub do_stuff {
    print "$label, $type, $data\n";
}

__DATA__

label1 .word  1234ABCDh
label2 .float 3.14159

label3 .word 1, 2, 3

label4 .float 0.0, 0.5, 1.0
       .float 1.5, 2.0, 2.5


-- 
Hope this helps,
Steven



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

Date: Thu, 24 Jun 2004 18:25:11 GMT
From: "John ©" <johnjcarbone@nospam.hotmail.com>
Subject: error logs...
Message-Id: <b0FCc.2122$L8.1342@nwrdny02.gnilink.net>

I was under the impression that if you write a script in Perl that has
errors in it, you will get some kind of error page...

Is this true too for scripts on websites?

I am just starting, testing things out (you know with the simple 'print
etc...')
Once it worked, but I added another line of print and it now goes to "The
page cannot be displayed" (500 error)

Not the error page I expected.

this simple script is at
http://www.sigmachi-iotadelta.com/cgi-bin/GETTIMETEST.cgi

Thanks in advance for any help

(And for the rude people that say I should read documentation or FAQ, first
of all I don't know where the FAQ is, and I AM reading a book on Perl, but
the book only says that you get an error page that tells you basically where
the error is located, so if you have snide comments, please save them and
let those who actually want to help answer.)

-- 
Best,
John ©




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

Date: Thu, 24 Jun 2004 20:29:34 +0200
From: "Henk" <hotten@zonnet.nl>
Subject: Re: error logs...
Message-Id: <40db1b8f$1_13@Output.100ProofNews.com>


"John ©" <johnjcarbone@nospam.hotmail.com> wrote in message
news:b0FCc.2122$L8.1342@nwrdny02.gnilink.net...
> I was under the impression that if you write a script in Perl that has
> errors in it, you will get some kind of error page...
>
> Is this true too for scripts on websites?
>
> I am just starting, testing things out (you know with the simple 'print
> etc...')
> Once it worked, but I added another line of print and it now goes to "The
> page cannot be displayed" (500 error)
>
> Not the error page I expected.
>
> this simple script is at
> http://www.sigmachi-iotadelta.com/cgi-bin/GETTIMETEST.cgi
>
> Thanks in advance for any help
>
> (And for the rude people that say I should read documentation or FAQ,
first
> of all I don't know where the FAQ is, and I AM reading a book on Perl, but
> the book only says that you get an error page that tells you basically
where
> the error is located, so if you have snide comments, please save them and
> let those who actually want to help answer.)
>
> -- 
> Best,
> John ©
>
>

Can you copy & past the script here please ?




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

Date: Thu, 24 Jun 2004 19:25:23 +0100
From: Fergus Toolan <fergus.toolan@ucd.ie>
Subject: Re: error logs...
Message-Id: <newscache$84puzh$qp3$1@weblab.ucd.ie>

The web server will have error logs. If it is apache it will be in a 
subdirectory of the apache root directory called logs. The file you need 
is error.log Error messages should appear there.

Fergus

PS: That directory structure / filename is for standard apache 
installations you would need to chack the specifics for your system.

John © wrote:
> I was under the impression that if you write a script in Perl that has
> errors in it, you will get some kind of error page...
> 
> Is this true too for scripts on websites?
> 
> I am just starting, testing things out (you know with the simple 'print
> etc...')
> Once it worked, but I added another line of print and it now goes to "The
> page cannot be displayed" (500 error)
> 
> Not the error page I expected.
> 
> this simple script is at
> http://www.sigmachi-iotadelta.com/cgi-bin/GETTIMETEST.cgi
> 
> Thanks in advance for any help
> 
> (And for the rude people that say I should read documentation or FAQ, first
> of all I don't know where the FAQ is, and I AM reading a book on Perl, but
> the book only says that you get an error page that tells you basically where
> the error is located, so if you have snide comments, please save them and
> let those who actually want to help answer.)
> 



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

Date: Thu, 24 Jun 2004 14:32:43 -0400
From: Paul Lalli <mritty@gmail.com>
Subject: Re: error logs...
Message-Id: <20040624142740.L23512@dishwasher.cs.rpi.edu>

On Thu, 24 Jun 2004, John =A9 wrote:

> I was under the impression that if you write a script in Perl that has
> errors in it, you will get some kind of error page...
>
> Is this true too for scripts on websites?

Only if you ask for them.

> I am just starting, testing things out (you know with the simple 'print
> etc...')
> Once it worked, but I added another line of print and it now goes to "The
> page cannot be displayed" (500 error)

Read the FAQ.... oh wait, I'm not allowed to be snide... okay then, read
this:

http://www.perldoc.com/perl5.8.4/pod/perlfaq9.html#My-CGI-script-runs-from-=
the-command-line-but-not-the-browser.--(500-Server-Error)


Your server is responsible for storing the error that perl actually
generated in an error log.  If you don't know where that log is, ask your
system administrator.

Now, as I said above, you can ask Perl to print the error messages to the
browser instead of (just) the error log.  To do that, add this line at the
top of the program:

use CGI::Carp qw(fatalsToBrowser);

That will cause the fatal errors to be displayed on the browser window as
well as the server logs.

> Not the error page I expected.
>
> this simple script is at
> http://www.sigmachi-iotadelta.com/cgi-bin/GETTIMETEST.cgi
>
> Thanks in advance for any help
>
> (And for the rude people that say I should read documentation or FAQ, fir=
st
> of all I don't know where the FAQ is, and I AM reading a book on Perl, bu=
t

The FAQ is located in a multitude of places.  If you have command-line
access to your perl installation, you can get to it by typing the command
perldoc perlfaq
at the command line.  If not, the easiest location for you to access it
might be
http://www.perldoc.com/perl5.8.4/pod/perlfaq.html

> the book only says that you get an error page that tells you basically wh=
ere
> the error is located, so if you have snide comments, please save them and
> let those who actually want to help answer.)

I hope this is helpful.  By the way, now that you do know the location of
the FAQ, there really is no excuse for not reading it.   And if that's too
snide for you, oh well. ;)

Paul Lalli


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

Date: 24 Jun 2004 19:00:10 GMT
From: "A. Sinan Unur" <1usa@llenroc.ude>
Subject: Re: error logs...
Message-Id: <Xns9512989EA486Casu1cornelledu@132.236.56.8>

"John ©" <johnjcarbone@nospam.hotmail.com> wrote in
news:b0FCc.2122$L8.1342@nwrdny02.gnilink.net: 

> (And for the rude people that say I should read documentation or FAQ,
> first of all I don't know where the FAQ is, and I AM reading a book on
> Perl, but the book only says that you get an error page that tells you
> basically where the error is located, so if you have snide comments,
> please save them and let those who actually want to help answer.)

Have you heard of Google? Do you know that the FAQ is installed on your 
computer? If you do not have Perl installed on your development computer, 
why not? Have you seen the posting guidelines posted here frequently?


-- 
A. Sinan Unur
1usa@llenroc.ude (reverse each component for email address)


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

Date: Thu, 24 Jun 2004 19:30:31 GMT
From: "John ©" <johnjcarbone@nospam.hotmail.com>
Subject: Re: error logs...
Message-Id: <rZFCc.2367$L8.1944@nwrdny02.gnilink.net>


> Have you heard of Google?
Google? Thanks on the internet right? You do a search for Perl, see what you
get.  Almost impossible to weed through the good and the bad without prior
knowledge.

>Do you know that the FAQ is installed on your
> computer? If you do not have Perl installed on your development computer,
> why not?

FAQ not on my computer, why would it be? Why would I install Perl on my
computer when I only rarely use it in web development.

>Have you seen the posting guidelines posted here frequently?

Didn't know I was supposed to look for a posting of guidelines.  I read them
now, now that I know they existed.

I'll keep the:

             "Be extra cautious when you get upset
                   - Count to ten before composing a followup when you are
upset
                   - Count to ten after composing and before posting when
you are upset"

part of the guidelines in mind.


Thanks again.
-John




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

Date: Thu, 24 Jun 2004 15:37:13 -0400
From: Paul Lalli <mritty@gmail.com>
Subject: Re: error logs...
Message-Id: <20040624153540.E23512@dishwasher.cs.rpi.edu>

On Thu, 24 Jun 2004, John =A9 wrote:

> > Have you heard of Google?
> Google? Thanks on the internet right? You do a search for Perl, see what =
you
> get.  Almost impossible to weed through the good and the bad without prio=
r
> knowledge.

You can think I'm trolling if you want, but I feel the need to point out
that the first google return for "Perl FAQ" returns www.perl.com/perl/faq
which, of course, is the official Perl FAQ.

Paul Lalli


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

Date: Thu, 24 Jun 2004 19:37:32 GMT
From: "John ©" <johnjcarbone@nospam.hotmail.com>
Subject: Re: error logs...
Message-Id: <04GCc.4775$A9.1422@nwrdny01.gnilink.net>

>Read the FAQ.... oh wait, I'm not allowed to be snide... okay then, read
>this:

>http://www.perldoc.com/perl5.8.4/pod/perlfaq9.html#My-CGI-script-runs-from-
the-command-line-but-not-the->browser.--(500-Server-Error)

Thanks for actually giving the link.  Obviously the 'snide' wasn't directed
at you. Before you get too thinned skinned, you should note that it did say
the 'rude' people.  I mean I have no idea how everything works. The
Guidelines says  to lurk, but hey, I didn't even know there were guidelines
and some people can be really unforgiving here.  Sure it's annoying when
thousands of different people do the same thing, but it's not like I am ONE
person doing it A THOUSAND times ... it's my first time here, don't I get
one slide?

The comments were aimed at people like this one guy who was like "You're a
newbie, you're lazy, go read the FAQ.  You should know not to post this way,
and to post that way."  Just a bunch of rudeness without any substance.  No
links to where things are, just total unhelpfulness. If he's that upset,
then just don't respond to me.

So thanks again, and I hope you didn't get too upset for the comments that
had nothing to do with you.

Best,
John




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

Date: Thu, 24 Jun 2004 19:41:55 GMT
From: "John ©" <johnjcarbone@nospam.hotmail.com>
Subject: Re: error logs...
Message-Id: <78GCc.38255$MW4.32711@nwrdny03.gnilink.net>

>You can think I'm trolling if you want, but I feel the need to point out
>hat the first google return for "Perl FAQ" returns www.perl.com/perl/faq
>which, of course, is the official Perl FAQ.

>Paul Lalli


Well when I posted before to a server, one guy was like go read the FAQ ...
I figured it was a FAQ for the newsgroup and where would that be?  He didn't
give any help  ...   when I do google searches, I just did Perl, or Perl
tutorial, or Perl help... and they talk like Perl is known already.

But like I said, it's noted, so now I know.  I think I'll just go back to my
book.

Thanks again,
John




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

Date: Thu, 24 Jun 2004 20:05:34 GMT
From: "John ©" <johnjcarbone@nospam.hotmail.com>
Subject: Re: error logs...
Message-Id: <iuGCc.4965$A9.3556@nwrdny01.gnilink.net>


>
> Can you copy & past the script here please ?
>
>
--------------------------------------------------------------------------

#!/usr/local/bin/perl5


$GetTime = 5;
$NextOne = 6;

print "This is a test of $GetTime\n"
print "The next number is $NextOne\n"

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

Pretty basic, eh? If the <$NextOne = 6;> and <print "The next> etc.. is not
in there, then it shows:

This is a test of 5

But when the script it like it is above, it gives a HTTP 500 Internal server
error.

I am going to keep reading.
Thanks for the help. I appreciate it.

-John




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

Date: Thu, 24 Jun 2004 16:12:40 -0400
From: Paul Lalli <mritty@gmail.com>
Subject: Re: error logs...
Message-Id: <20040624161107.T23512@dishwasher.cs.rpi.edu>

On Thu, 24 Jun 2004, John =A9 wrote:

> >
> > Can you copy & past the script here please ?
> >
> >
> -------------------------------------------------------------------------=
-
>
> #!/usr/local/bin/perl5
>
>
> $GetTime =3D 5;
> $NextOne =3D 6;
>
> print "This is a test of $GetTime\n"
> print "The next number is $NextOne\n"
>
> -------------------------------------------------------------------------=
-
>
> Pretty basic, eh? If the <$NextOne =3D 6;> and <print "The next> etc.. is=
 not
> in there, then it shows:
>
> This is a test of 5
>
> But when the script it like it is above, it gives a HTTP 500 Internal ser=
ver
> error.
>
> I am going to keep reading.
> Thanks for the help. I appreciate it.


John,

Your error is being caused by a missing semi-colon on the first print
line.

I strongly suggest you follow the advice I gave earlier, to add the line:

use CGI::Carp qw/fatalsToBrowser/;
right below the #!/usr/local/bin/perl5  line.  This will cause the error
message to be printed to the browser, so you could see that you were
missing the semicolon.

Paul Lalli


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

Date: Thu, 24 Jun 2004 20:20:53 GMT
From: "John ©" <johnjcarbone@nospam.hotmail.com>
Subject: Re: error logs...
Message-Id: <FIGCc.5047$A9.1330@nwrdny01.gnilink.net>

>I strongly suggest you follow the advice I gave earlier, to add the line:

>use CGI::Carp qw/fatalsToBrowser/;
>right below the #!/usr/local/bin/perl5  line.  This will cause the error
>message to be printed to the browser, so you could see that you were
>missing the semicolon.

>Paul Lalli

Paul,

I did add that line, and tried it.  What I got back was:

"Software error:

Execution of ./testing.cgi aborted due to compilation errors.

For help, please send mail to the webmaster, etc..."

Although I'll admit this is more on the line I want...  I know the simple
script has errors... or actually I am not worried about it working, I just
want an easy way to figure out what is wrong when hopefully I move onto
larger scripts.

Thanks for the help,
John




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

Date: Thu, 24 Jun 2004 16:37:36 -0400
From: Paul Lalli <mritty@gmail.com>
Subject: Re: error logs...
Message-Id: <20040624163102.U23512@dishwasher.cs.rpi.edu>

On Thu, 24 Jun 2004, John =A9 wrote:

> >I strongly suggest you follow the advice I gave earlier, to add the line=
:
>
> >use CGI::Carp qw/fatalsToBrowser/;
> >right below the #!/usr/local/bin/perl5  line.  This will cause the error
> >message to be printed to the browser, so you could see that you were
> >missing the semicolon.
>
> >Paul Lalli
>
> Paul,
>
> I did add that line, and tried it.  What I got back was:
>
> "Software error:
>
> Execution of ./testing.cgi aborted due to compilation errors.
>
> For help, please send mail to the webmaster, etc..."

Really?  It didn't say
syntax error at testing.cgi line 8, near "print"
anywhere?  That's odd.  I'm wondering what version of Perl your host is
running.

> Although I'll admit this is more on the line I want...  I know the simple
> script has errors... or actually I am not worried about it working, I jus=
t
> want an easy way to figure out what is wrong when hopefully I move onto
> larger scripts.

That CGI::Carp line is how you have perl display for you the error
messages to the browser.  These are the same error messages you'd receive
if you were running the script just on the command line.  You won't get
more information from Perl itself.

If you are curious about what version you're running as well, add this
line to your script:

printf "Ver: v%vd\n", $^V;

If the version isn't at least 5.6 (preferably 5.8), you might want to
consider at least asking your host if they'll upgrade.


Paul Lalli


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

Date: Thu, 24 Jun 2004 21:18:12 GMT
From: "John ©" <johnjcarbone@nospam.hotmail.com>
Subject: Re: error logs...
Message-Id: <oyHCc.38624$MW4.30519@nwrdny03.gnilink.net>



>If you are curious about what version you're running as well, add this
>line to your script:

>printf "Ver: v%vd\n", $^V;

I added that and it gave back:

Ver: v%vd

Whatever that means... I have been looking through docs and faq of the
server, but I can't pin down exactly which Perl they are using.  I'll keep
looking.

Thanks again,
John




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

Date: 24 Jun 2004 22:28:57 +0200
From: Hallvard B Furuseth <h.b.furuseth@usit.uio.no>
Subject: How to disable Unicode?
Message-Id: <HBF.20040624dmv6@bombur.uio.no>

I have some perl5.6/5.004 scripts that I need to get quickly to work for
perl5.8.  Is there an easy way to disable Unicode handling for a whole
script?

I've tried to insert
  BEGIN { delete @ENV{qw(LANGUAGE LC_ALL LANG)}; }
  use bytes;
but apparently Unicode mode is invoked before the script unsets those
variables.  Besides, even if it worked I'd be nervous about not catching
all variables that can cause Unicode mode -- I need to be quite sure
Perl won't turn on Unicode mode because someone set a variable I didn't
know about.

-- 
Hallvard


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

Date: Thu, 24 Jun 2004 16:29:25 -0400
From: Jim <squidsonata@hotmail.com>
Subject: Re: Logfile scanning assistance
Message-Id: <cbfdit$3hr$1@gargoyle.oit.duke.edu>

Thanks for the suggestions and assistance.  I have been working on this 
since and come up with the following:

#!/usr/local/bin/perl

$logfile = "/opt/sample.log";

open (LOG, $logfile)
         or die "Can't open logfile, $!\n";
@reverse_logfile = reverse <LOG>;

open (MYLOG, ">/opt/processed.log")
         or die "Can't open my logfile, $!\n";

for $line (@reverse_logfile) {
         if ( $line =~ m|(Current recvd)| ) {
		$goodstuff = $line;
	}
         if ( $line =~ m|(\d{4}-\d{2}-\d{2})| ) {
		$date = $line;
         }
	print MYLOG $user, $date;
}

Here's a sample.log:

2004-06-23 12:11:22 Wrote 27 bytes
2004-06-23 12:11:22 length 12
2004-06-23 12:11:22 blocking
12:12:30 processing logfile
12:13:22 appending logfile
12:13:22 reticulating splines
12:13:22 initiating connection
12:13:22 receiving connection
12:14:57 ending connection
Max recvd: 20
Current recvd: 1
2004-06-23 12:16:44 Wrote 23 bytes
2004-06-23 12:16:44 length 5
2004-06-23 12:16:44 blocking
12:17:11 processing logfile
12:17:11 appending logfile
12:17:11 reticulating splines
12:17:11 initiating connection
12:17:11 receiving connection
12:18:38 ending connection
Max recvd: 20
Current recvd: 5

I thought it would be easier to reverse the logfile, find a 'Current 
recvd' line and then find the first timestamp after it.

The bit I'm having problems with is I'm picking up all the timestamps, 
rather than the first one after 'Current recvd' is matched.  How can I 
only match one timestamp?

Thanks.

Jim



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

Date: 24 Jun 2004 11:38:28 -0700
From: brigitte.wenzel@modisit.com (Brigitte)
Subject: Perl Programmers Needed 4-6 month contract position
Message-Id: <be9b0f8f.0406241038.7e5f7a7e@posting.google.com>

Hello,

We are staffing multiple Web Developer positions in the Seattle, WA
area.  My client is looking for consultants with experience in Perl
programming and Object Oriented design.  Experience with Mason is
highly desired, however, not required.  This is for a four to six
month contract assignment.

We are prepared to offer a lucrative compensation (either W-2 hourly
or subcontractor opportunities) and benefits package to those who join
our team. I would appreciate it if you would contact me. My toll free
number is listed below along with my e-mail address. You might also
want to check out our employment portal @ www.modisit.com.

If you are not able to pursue opportunities at this time, please
respond with your expected date of availability, your compensation
requirements and any other information you feel would be of benefit in
screening opportunities for you. Please include a current copy of your
resume.  I would also appreciate you forwarding this message to any
professional associates that you feel may be open to considering other
opportunities.


Warmest Regards,


Brigitte Wenzel
Resource Development Manager
Modis
5000 Executive Parkway, Suite 390
San Ramon, CA  94583
(925)328-1903 x17
(925)328-1993 fax
(800)244-0477
brigitte.wenzel@modisit.com
www.modisit.com


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

Date: Thu, 24 Jun 2004 21:30:00 +0300
From: "greger" <bobsmith@[spamguard]jippii.fi>
Subject: Re: problem to setup a socket
Message-Id: <lUECc.2889$S4.2278@reader1.news.jippii.net>


"Lim kiang Leng" <kiangleng@hotmail.com> wrote in message
news:4282e185.0406240933.6016ad1d@posting.google.com...
> I am new to try up the socket programming, I try to set up a socket in
> my company but seem like it failed. Althught , it know the present of
> the server, but seem like they cant talk. Below is my server and
> client's program. Is any one know why i failed to communicate?
>
>
> ########
> #server#
> ########
> print "prgram is in running ... \n" ;
> use IO::Socket;
>  my $sock = new IO::Socket::INET (
>  LocalHost => 'machine.mycompany.com',
>  LocalPort => '7000',
>  Proto => 'tcp',
>  Listen => 1,
>  Reuse => 1,
>  );
> die "Could not create socket: $!\n" unless $sock;
> my $new_sock = $sock->accept();
> print "$_" ;
> while(defined(<$new_sock>)) {
> print $_;
> }
> close($sock);
>
you probably need to have a look at reading from a socket, instead of
checking if the socket is defined.
check out:
http://www.infocopter.com/perl/socket-server.htm
best R
/G
--
www.gh-webinteractive.com
>
>
>
> ########
> #client#
> ########
>
> use IO::Socket;
> print "programming " ;
> my $sock = new IO::Socket::INET (
>                                    PeerAddr =>
> 'machine.mycompany.com',
>                                    PeerPort => '7000',
>                                    Proto => 'tcp',
>                                   );
>   die "Could not create socket: $!\n" unless $sock;
>   print $sock "Hello there!\n";
>   close($sock);




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

Date: Thu, 24 Jun 2004 14:24:34 -0400
From: Paul Lalli <mritty@gmail.com>
Subject: Re: problem to setup a socket
Message-Id: <20040624142113.G23512@dishwasher.cs.rpi.edu>

On Thu, 24 Jun 2004, Lim kiang Leng wrote:

> I am new to try up the socket programming, I try to set up a socket in
> my company but seem like it failed. Althught , it know the present of
> the server, but seem like they cant talk. Below is my server and
> client's program. Is any one know why i failed to communicate?
>
>
> ########
> #server#
> ########
> print "prgram is in running ... \n" ;
> use IO::Socket;
>  my $sock = new IO::Socket::INET (
>  LocalHost => 'machine.mycompany.com',
>  LocalPort => '7000',
>  Proto => 'tcp',
>  Listen => 1,
>  Reuse => 1,
>  );
> die "Could not create socket: $!\n" unless $sock;
> my $new_sock = $sock->accept();
> print "$_" ;
> while(defined(<$new_sock>)) {
> print $_;
> }

I don't know if this is your only problem, but it's at least one.  There
is special magic involved when a <$file> construct is the only thing in
the conditional of the while loop.  But the catch is that it must be the
ONLY thing. The magic is that perl translates this:
while (<$file>) { ... }
to this:
while (defined($_ = <$file>)) { ... }

This does not happen in any other case.  It does not happen when you add
anything else, including a call to defined() in the conditional.  What's
happening here is that $_ is never getting assigned.  If you had enabled
warnings, you would likely see an uninitialized value warning for the
`print $_` line.

Try changing the while loop to:
while (<$new_sock>) {
   print;
}

and see if that changes anything.  If not, there are other problems with
the code as well.

Paul Lalli



> close($sock);
>
>
>
>
> ########
> #client#
> ########
>
> use IO::Socket;
> print "programming " ;
> my $sock = new IO::Socket::INET (
>                                    PeerAddr =>
> 'machine.mycompany.com',
>                                    PeerPort => '7000',
>                                    Proto => 'tcp',
>                                   );
>   die "Could not create socket: $!\n" unless $sock;
>   print $sock "Hello there!\n";
>   close($sock);
>


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

Date: Thu, 24 Jun 2004 14:26:50 -0400
From: Paul Lalli <mritty@gmail.com>
Subject: Re: problem to setup a socket
Message-Id: <20040624142515.F23512@dishwasher.cs.rpi.edu>

On Thu, 24 Jun 2004, greger wrote:

> "Lim kiang Leng" <kiangleng@hotmail.com> wrote in message
> news:4282e185.0406240933.6016ad1d@posting.google.com...
>
> > while(defined(<$new_sock>)) {
> > print $_;
> > }
> > close($sock);
> >
> you probably need to have a look at reading from a socket, instead of
> checking if the socket is defined.
> check out:
> http://www.infocopter.com/perl/socket-server.htm

That doesn't check if the socket is defined.  It checks if the return
value from <$new_sock> is defined.  That return value is then thrown away,
since the 'magic' of the while loop was not invoked to auto-assign it to
$_.

Paul Lalli


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

Date: Thu, 24 Jun 2004 16:16:14 -0500
From: Rusty Phillips <rustyp@freeshell.org>
Subject: Re: REGEX Negation
Message-Id: <pan.2004.06.24.21.16.13.355983@freeshell.org>

That second technique is how I'm doing things now for the one
"negation" I'm doing now (actually /(.*?)(?=blah|$)/, which I know 
will at least find the first match not containing the lookahead 
string (assuming that such a string is a token, and should not be
absorbed by the regex).  I'd just hoped there was a more natural way.

Didn't consider negative lookbehinds for doing quotes, though.
Thanks for the help.


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

Date: 24 Jun 2004 19:17:35 GMT
From: "A. Sinan Unur" <1usa@llenroc.ude>
Subject: Re: Regexp, Strings and spaces
Message-Id: <Xns95129B92ED262asu1cornelledu@132.236.56.8>

nospam@tomcat.ca.tc (Florent Carli) wrote in
news:6d12cccb.0406240335.e7fceed@posting.google.com: 

> For now, the only regexp able to do this I have found is : 
> field2=["]?((?<=["])[^"]*(?=["])|(?<!["])\S*(?!["]))
> But like I said, the software I use to parse is using a version of
> perl that does not support lookbehinds ...
> 
> I'm trying to do basically the same thing windows does when you type :
> copy "my file.doc" "d:\my documents"
> or
> copy myfile.doc d:\
> 
> But only with one regexp (and no second pass in perl to remove the
> quotes for instance ;) )
> any idea ?

Is this just out of curiosity?

If there is some other purpose to this, take a look at Text::Balanced. 
The few times I needed this type of functionality, that module worked 
very well for me.

-- 
A. Sinan Unur
1usa@llenroc.ude (reverse each component for email address)


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

Date: Thu, 24 Jun 2004 14:05:05 -0400
From: Brad Baxter <bmb@ginger.libs.uga.edu>
Subject: Re: Strange Behaviour with Hash???
Message-Id: <Pine.A41.4.58.0406241404260.22144@ginger.libs.uga.edu>

On Thu, 24 Jun 2004, Fergus Toolan wrote:

> Hi all,
> We're currently writing some scripts that deal with hashs and are
> getting some strange behaviour with them. We have very little experience
> with dealing with hashs so I want to check something.
>
> Is it correct to assign one hash to another? For instance
>
> %H1 = %H2;
>
> I want the hashs to be distinct. Will the above statement completely
> overwrite the current contents of %H1?

Just curious--what's the strange behaviour?

Regards,

Brad


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

Date: Thu, 24 Jun 2004 19:20:46 +0100
From: Fergus Toolan <fergus.toolan@ucd.ie>
Subject: Re: Strange Behaviour with Hash???
Message-Id: <newscache$jwouzh$qp3$1@weblab.ucd.ie>

Hi all,
Thanks to everyone who has replyed so far.
Just to describe it a bit more.
Both H1 and H2 are hashs of arrays. I know that when I do the 
assignement that the references will be the same but this desired.

We initialise %H1 with values read in from a file. This step is working 
fine.
We begin a loop at this stage for k iterations.
For each value in H1 we perform some tests (a bitwise comparison between 
the arrays). Depending on the result of this we assign the hash element 
i.e. the array ref to H2. when we are finished this process we then 
perform the assignment i.e.

%H1 = %H2

We seem to be able to access keys in H1 that were there before the 
assignment but that are not in H2.
However judging from the responses so far our problem is not with the 
assignment itself but it most be something buried in the logic of our 
creation of H2.

Oh well back to the toil :-)
Thanks again for your help
Regards
Fergus



Fergus Toolan wrote:
> Hi all,
> We're currently writing some scripts that deal with hashs and are 
> getting some strange behaviour with them. We have very little experience 
> with dealing with hashs so I want to check something.
> 
> Is it correct to assign one hash to another? For instance
> 
> %H1 = %H2;
> 
> I want the hashs to be distinct. Will the above statement completely 
> overwrite the current contents of %H1?
> 
> Any comments would be much appreciated
> Regards
> Fergus
> 



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

Date: Thu, 24 Jun 2004 14:37:09 -0400
From: Paul Lalli <mritty@gmail.com>
Subject: Re: Strange Behaviour with Hash???
Message-Id: <20040624143339.B23512@dishwasher.cs.rpi.edu>

On Thu, 24 Jun 2004, Fergus Toolan wrote:

> Fergus Toolan wrote:
> > Hi all,
> > We're currently writing some scripts that deal with hashs and are
> > getting some strange behaviour with them. We have very little experience
> > with dealing with hashs so I want to check something.
> >
> > Is it correct to assign one hash to another? For instance
> >
> > %H1 = %H2;
> >
> > I want the hashs to be distinct. Will the above statement completely
> > overwrite the current contents of %H1?
> >
> Hi all,
> Thanks to everyone who has replyed so far.

You're welcome.

> Just to describe it a bit more.
> Both H1 and H2 are hashs of arrays. I know that when I do the
> assignement that the references will be the same but this desired.

I find that mildly unlikely, but I'll take your word for it for now.

> We initialise %H1 with values read in from a file. This step is working
> fine.
> We begin a loop at this stage for k iterations.
> For each value in H1 we perform some tests (a bitwise comparison between
> the arrays).
> Depending on the result of this we assign the hash element
> i.e. the array ref to H2.

Here's where you lose me.  %H2 is a hash.  How are you assigning an array
ref to a hash?  Your wording makes no sense.

> when we are finished this process we then
> perform the assignment i.e.
>
> %H1 = %H2

Confused again.  If you're first assigning pieces of H1 to H2, how/why are
you then assigning all of H1 to H2?

You should really really post a *runnable* snippet of code that
illustrates your problem.  As the posting guidelines suggest, "Speak Perl,
not English".

Paul Lalli

P.S.  In the future, please observe another statement in the posting
guidelines - post your replies *below* the original material, with the
quoted text on top.  This makes everyone happier.  Thanks.


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

Date: Thu, 24 Jun 2004 14:48:13 -0400
From: "Jay" <boatingN.O.S.P.A.M@cox.net>
Subject: Re: WWW::RobotRules
Message-Id: <wjFCc.2841$CR3.1446@lakeread03>

> Subclass LWP::UserAgent and override redirect_ok. I would have thought
> there was a class on CPAN that did that for robots files already.

Thanks again Ben, I have it working.




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

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


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