[29802] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 1045 Volume: 11

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Tue Nov 20 21:09:45 2007

Date: Tue, 20 Nov 2007 18:09:08 -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           Tue, 20 Nov 2007     Volume: 11 Number: 1045

Today's topics:
    Re: firefox could open my cgi, IE will be dead, why? <No_4@dsl.pipex.com>
    Re: Regular expression help <stoupa@practisoft.cz>
    Re: Script to disconnect Linksys WRT54G wireless router <davewilson69@sbcglobal.net>
    Re: Script to disconnect Linksys WRT54G wireless router <davewilson69@sbcglobal.net>
        Traversing a set of hashes <jkstill@gmail.com>
    Re: Traversing a set of hashes <jl_post@hotmail.com>
    Re: Traversing a set of hashes <tzz@lifelogs.com>
    Re: Traversing a set of hashes <ben@morrow.me.uk>
        Trouble with Regualar Expression Pattern <jhu4399@yahoo.com>
    Re: Trouble with Regualar Expression Pattern <noreply@gunnar.cc>
    Re: Trouble with Regualar Expression Pattern <jkstill@gmail.com>
    Re: Trouble with Regualar Expression Pattern <stoupa@practisoft.cz>
    Re: Trouble with Regualar Expression Pattern <noreply@gunnar.cc>
    Re: Trouble with Regualar Expression Pattern <jhu4399@yahoo.com>
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

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

Date: Tue, 20 Nov 2007 23:16:20 +0000
From: Big and Blue <No_4@dsl.pipex.com>
Subject: Re: firefox could open my cgi, IE will be dead, why?
Message-Id: <FqGdnaLao5FY997anZ2dnUVZ8sGvnZ2d@pipex.net>

patrick wrote:

>> print $cgi->header(-type=>"text/html", -expires=>'now');
>> print $cgi->start_html("Details of the configurations");
>>
>> my $logfile = $cgi->param('logfile');
>> open(DATA, "$logfile")|| die("File is not exist!\n");
>>
>> @lines = <DATA>;
>>
>> foreach $line (@lines) {
>>          print "<PRE>$line <\PRE>";
>>
>> }
>>
>> close(DATA);
>> print $cgi->end_html;
> 
> You're using <\PRE> when should be </PRE>
> 
> Why <PRE> line </PRE> instead of
> <PRE> line
>       line
>       line
> </PRE>?

    Indeed.  Which then allows:

  print "<PRE>", <DATA>, "</PRE>";

or, even simpler:

  print $cgi->header(-type=>"text/text", -expires=>'now');
  ....
  print <DATA>;

No point putting it into HTML if you don't intend to use it.


-- 
              Just because I've written it doesn't mean that
                   either you or I have to believe it.


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

Date: Wed, 21 Nov 2007 01:47:33 +0100
From: "Petr Vileta" <stoupa@practisoft.cz>
Subject: Re: Regular expression help
Message-Id: <fhvvc5$qt9$2@ns.felk.cvut.cz>

Josef Moellers wrote:
> I feel like carrying owls to Athens, but in principle there is a
> difference between the two: In the former case (/.*2.*\@/), $PREMATCH
> will be empty, in the latter case, (/2.*\@/) it won't.

Please don't forget that the mail 2me@mydomain.com is _valid_ mail.
-- 

Petr Vileta, Czech republic
(My server rejects all messages from Yahoo and Hotmail. Send me your mail 
from another non-spammer site please.)





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

Date: Wed, 21 Nov 2007 01:35:08 GMT
From: Wilson <davewilson69@sbcglobal.net>
Subject: Re: Script to disconnect Linksys WRT54G wireless router on Windows
Message-Id: <gXL0j.11772$yV6.10458@newssvr25.news.prodigy.net>

It's not working yet - but it's closer than it was 
Here is the tutorial so far.

STEP 1:
Install ActiveState activeperl freeware on Windows XP
http://www.activestate.com/Products/activeperl

STEP 2:
Modify script to use YOUR password for your Linksys WRT54G router review

STEP 3:
Run script

At this point, I get the following error. 
I will google for this package and see if I can find it on the web.

501 Protocol scheme 'https' is not supported (Crypt::SSLeay not installed)
Content-Type: text/plain
Client-Date: Wed, 21 Nov 2007 01:22:38 GMT
Client-Warning: Internal response

LWP will support https URLs if the Crypt::SSLeay module is installed.
More information at <http://www.linpro.no/lwp/libwww-perl/README.SSL>.

Wilson


#!/usr/bin/perl -w
use strict;
my $adr='https://192.168.0.1/StaRouter.htm'; # talk to this
# my $user='root';
my $user=''; # the Linksys WRT54G wireless router doesn't have login name
my $pass='letmein';
# make a User Agent
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
# make a request object
# fill in the button name and value from
# looking at the page source.
my $req = HTTP::Request->new(POST => $adr, ['action','disconnect']);
sleep 5;
my $req = HTTP::Request->new(POST => $adr, ['action','connect']);
$req->authorization_basic($user, $pass);
# send the request
my $result = $ua->request($req);
# print the result
print $result->as_string;
# The end of a perl script to run on Windows to tell the Linksys WRT54G
# router to disconnect from the ISP; then after 5 seconds, to reconnect.


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

Date: Wed, 21 Nov 2007 02:00:43 GMT
From: Wilson <davewilson69@sbcglobal.net>
Subject: Re: Script to disconnect Linksys WRT54G wireless router on Windows
Message-Id: <fjM0j.11777$yV6.8202@newssvr25.news.prodigy.net>

Here is my tutorial to press buttons on your router from the Windows
command line. 

It's not working yet because I don't know how to modify the perl script to
load the Win32 OpenSSL package I installed in order to talk to https web
site.

Does anyone know what line to add to the script below in order to load the
Win32 OpenSSL freeware?

Wilson



----------------------------------------------------------
How to command your router from the Windows command line:
----------------------------------------------------------
0. Install ActiveState activeperl freeware on Windows XP
   http://www.activestate.com/Products/activeperl
----------------------------------------------------------
1. Install Win32 OpenSSL freeware support for https URLs
   http://www.openssl.org/related/binaries.html 
------------------------------------------------------------
2. Add the following line to the perl script to load openssl
   ???? what is the line needed to load Win32 OpenSSL????
------------------------------------------------------------
3. Modify the script to press desired buttons on your router


#!/usr/bin/perl -w
use strict;

# Linksys WRT54G Router automation button pressing script
# Read the cookbook
# http://search.cpan.org/~gaas/libwww-perl-5.805/lwpcook.pod
# Read the LWP reference
# http://search.cpan.org/~gaas/libwww-perl-5.805/lib/LWP.pm
# Read this too
# http://lwp.interglacial.com/ch05_05.htm

# my $adr='https://192.168.0.1/Services.asp'; # talk to this router
my $adr='https://192.168.0.1/StaRouter.htm'; # talk to this router

# my $user='root';
my $user=''; # the Linksys WRT54G wireless router doesn't have login name
my $pass='letmein';

# make a User Agent
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;

# make a request object
# fill in the button name and value from looking at the page source.
# my $req = HTTP::Request->new(POST => $adr, ['action','reboot']);
#
# A view source on the browser web page seems to indicate the disconnect
# button is named "disconnect" so I'll substitute that instead of "reboot".
my $req = HTTP::Request->new(POST => $adr, ['action','disconnect']);

# Wait five seconds and then run the next command
sleep 5;

my $req = HTTP::Request->new(POST => $adr, ['action','connect']);

$req->authorization_basic($user, $pass);

# send the request
my $result = $ua->request($req);

# print the result
print $result->as_string;

# The end of a perl script to run on Windows to tell the Linksys WRT54G
# router to disconnect from the ISP; then after 5 seconds, to reconnect.


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

Date: Tue, 20 Nov 2007 15:58:39 -0800 (PST)
From: jkstill <jkstill@gmail.com>
Subject: Traversing a set of hashes
Message-Id: <0a8c77c7-427c-4b05-af9c-42c7261a3973@s6g2000prc.googlegroups.com>

I am trying to do something with hashes that I have not before.

While I am sure it can be done, I can't think of a good way to do it.

Given the following hash:

my %h = (
   'first' => {
      f0 => 'f_zero',
      f1 => 'f_one',
   },
   'second' => {
      s0 => 's_zero',
      s1 => 's_one',
   }
);

 ... print all possible combinations

Easy enough using 2 nested loops.
Four combinations would be printed.

Extend the hash to this:

my %h = (
   'first' => {
      f0 => 'f_zero',
      f1 => 'f_one',
   },
   'second' => {
      s0 => 's_zero',
      s1 => 's_one',
   }
   'third' => {
      t0 => 't_zero',
      t1 => 't_one',
   }
);

This now requires 3 nested loops to get all possible combinations.

The problem is that the number of hashes nested in the %h hash
will not be known until runtime, so hardcoded loops won't work too
well.

Any tips on how to go about this?

TIA

Jared



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

Date: Tue, 20 Nov 2007 17:14:40 -0800 (PST)
From: "jl_post@hotmail.com" <jl_post@hotmail.com>
Subject: Re: Traversing a set of hashes
Message-Id: <be582971-66fd-42a2-871b-4d4152f190dc@l22g2000hsc.googlegroups.com>

On Nov 20, 4:58 pm, jkstill <jkst...@gmail.com> wrote:
>
> Given the following hash:
>
> my %h = (
>    'first' => {
>       f0 => 'f_zero',
>       f1 => 'f_one',
>    },
>    'second' => {
>       s0 => 's_zero',
>       s1 => 's_one',
>    }
> );
>
> ... print all possible combinations
>
> Easy enough using 2 nested loops.
> Four combinations would be printed.
>
> Extend the hash to this:
>
> my %h = (
>    'first' => {
>       f0 => 'f_zero',
>       f1 => 'f_one',
>    },
>    'second' => {
>       s0 => 's_zero',
>       s1 => 's_one',
>    },
>    'third' => {
>       t0 => 't_zero',
>       t1 => 't_one',
>    }
> );
>
> This now requires 3 nested loops to get all possible combinations.


   I don't agree.  Both definitions of %h show it to be a hash of
hashes, meaning it will only need an inner loop nested inside an outer
loop (what I'd call one nested loop).

   The following code (using only two while() loops) will print out
the contents of %h no matter how many hash entries it contains:

      while (my ($key, $value) = each(%h))
      {
         print "In '$key':\n";
         while (my ($key, $value) = each(%$value))
         {
            print "   $key => $value\n";
         }
      }

Running this code on the hash with three elements will give this
output:

      In 'first':
         f0 => f_zero
         f1 => f_one
      In 'second':
         s1 => s_one
         s0 => s_zero
      In 'third':
         t0 => t_zero
         t1 => t_one

This is what you want, isn't it?

   Incidentally, you can easily print out a hash, no matter how many
elements it has or how deep it is, by using the standard Data::Dumper
module.  Just use the following in your code:

      use Data::Dumper;
      print Dumper \%h;

And voila'!  You'll see the entire contents of the %h hash.

   I hope this helps, Jared.

   -- Jean-Luc


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

Date: Tue, 20 Nov 2007 19:32:30 -0600
From: Ted Zlatanov <tzz@lifelogs.com>
Subject: Re: Traversing a set of hashes
Message-Id: <87tzngz8lt.fsf@lifelogs.com>

On Tue, 20 Nov 2007 15:58:39 -0800 (PST) jkstill <jkstill@gmail.com> wrote: 

j> I am trying to do something with hashes that I have not before.
j> While I am sure it can be done, I can't think of a good way to do it.
 ...
j> The problem is that the number of hashes nested in the %h hash
j> will not be known until runtime, so hardcoded loops won't work too
j> well.

Try the CPAN Data::Match module.  It's very good for this kind of data
extraction, though it might be too advanced if you are not comfortable
with Perl data structures yet.

Ted


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

Date: Wed, 21 Nov 2007 01:32:33 +0000
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: Traversing a set of hashes
Message-Id: <heec15-h0g.ln1@osiris.mauzo.dyndns.org>


Quoth jkstill <jkstill@gmail.com>:
> I am trying to do something with hashes that I have not before.
> 
> While I am sure it can be done, I can't think of a good way to do it.
> 
> Given the following hash:
> 
> my %h = (
>    'first' => {
>       f0 => 'f_zero',
>       f1 => 'f_one',
>    },
>    'second' => {
>       s0 => 's_zero',
>       s1 => 's_one',
>    }
> );
> 
> ... print all possible combinations

It's not clear what you mean here by 'combinations'. I'm assuming you
mean 'combinations of values', so the result would be [[f_zero, s_zero],
[f_zero, s_one], [f_one, s_zero], [f_one, s_one]].

> Easy enough using 2 nested loops.
> Four combinations would be printed.

So you do mean what I said... the first thing to realize is that your
data structure should be arrays, not hashes:

    [  ['f_zero', 'f_one'], ['s_zero', 's_one']  ]

since you don't make use of the keys.

> Extend the hash to this:
> 
<snip: 3 inner hashes>
> 
> This now requires 3 nested loops to get all possible combinations.
> 
> The problem is that the number of hashes nested in the %h hash
> will not be known until runtime, so hardcoded loops won't work too
> well.
> 
> Any tips on how to go about this?

The first thing that come to (my) mind is recursion, but of course you
can do it with loops as well. You only need three nested loops to handle
any number of cases.

    #!/usr/bin/perl -l

    use warnings;
    use strict;

    my %h = (
        first => {
            f1 => 'f1',
            f2 => 'f2',
        },
        second => {
            s1 => 's1',
            s2 => 's2',
        },
        third => {
            t1 => 't1',
            t2 => 't2',
        },
        fourth => {
            41 => '41',
            42 => '42',
            43 => '43',
        },
    );

    $, = ',';

    print "recurse:";

    sub find_combs;

    print @$_ for find_combs values %h;

    sub find_combs {
        my $entry   = shift;

        my @values  = sort values %$entry;
        @_ or return map [$_], @values;

        my @recurse = find_combs @_;
        my @rv;

        for my $v (@values) {
            push @rv, map [$v, @$_], @recurse;
        }

        return @rv;
    }

    print "reduce:";

    use List::Util qw/reduce/;

    my @lol = map [sort values %$_], sort values %h;
    my $first = shift @lol;

    our ($a, $b); # silence warnings

    print @$_ for @{
        reduce {        # one...
            [
                map {   # two...
                    my $tmp = $_;
                    map [$tmp, @$_], @$a;   # three loops
                } @$b
            ]
        } [map [$_], @$first], @lol     # (this map doesn't count ;) )
    };

    __END__

Ben



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

Date: Tue, 20 Nov 2007 16:13:01 -0800 (PST)
From: jhu <jhu4399@yahoo.com>
Subject: Trouble with Regualar Expression Pattern
Message-Id: <5bb9eade-dc13-4199-8412-9ba7a0f5ff8c@w28g2000hsf.googlegroups.com>

I'm not sure how to piece together a pattern which will find an IP
address after a specific string ?

So for example if the web page be searched is the snippet below and
what I want is to get the IP address 177.33.152.123. But I need to
make sure that the pattern search starts after the text "DHCP Renew"
because there are other IP addresses above the "DHCP Renew" but I have
enclosed only a snippet of the returned web page.

I have the following \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} and that works
to get the first available IP but not the one I want. Thanks in
advance.


<TD width="22%" height=25>
<DIV align=right><FONT color=#000000><B><FONT face=Arial
                 size=2>Connection&nbsp;</FONT></B></FONT></DIV></TD>
                <TD width="78%" height=25><FONT face=Arial size=2>DHCP
Client
                  Connected <INPUT type=submit value="DHCP Release"
name=release>&nbsp;<INPUT type=submit value="DHCP Renew" name=renew>
                  </FONT></TD></TR>
              <TR>
                <TD width="22%" height=25>
                  <DIV align=right><FONT color=#000000><B><FONT
face=Arial
                  size=2>IP Address&nbsp;</FONT></B></FONT></DIV></TD>
                <TD width="78%" height=25><FONT face=Arial
                  size=2>177.33.152.123 </FONT></TD></TR>


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

Date: Wed, 21 Nov 2007 01:48:44 +0100
From: Gunnar Hjalmarsson <noreply@gunnar.cc>
Subject: Re: Trouble with Regualar Expression Pattern
Message-Id: <5qhdjfFvnbd4U1@mid.individual.net>

jhu wrote:
> I'm not sure how to piece together a pattern which will find an IP
> address after a specific string ?
> 
> So for example if the web page be searched is the snippet below and
> what I want is to get the IP address 177.33.152.123. But I need to
> make sure that the pattern search starts after the text "DHCP Renew"
> because there are other IP addresses above the "DHCP Renew" but I have
> enclosed only a snippet of the returned web page.
> 
> I have the following \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} and that works
> to get the first available IP but not the one I want.

     my ($ip) = $string =~ /DHCP Renew.+?(\d{1,3}(?:\.\d{1,3}){3})/s;

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


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

Date: Tue, 20 Nov 2007 16:55:14 -0800 (PST)
From: jkstill <jkstill@gmail.com>
Subject: Re: Trouble with Regualar Expression Pattern
Message-Id: <5092425f-054a-4f1d-98dc-bd6f37e8e050@s12g2000prg.googlegroups.com>

On Nov 20, 4:13 pm, jhu <jhu4...@yahoo.com> wrote:
> So for example if the web page be searched is the snippet below and
> what I want is to get the IP address 177.33.152.123. But I need to
> make sure that the pattern search starts after the text "DHCP Renew"
> because there are other IP addresses above the "DHCP Renew" but I have
> enclosed only a snippet of the returned web page.
>

Though not perfect, this may get you started.
Note that I included the '\D' preceding the IP address to detect the
last character (non-digit) preceding the pattern.  Not doing so
results in getting only the last digit of the first octet.

---------------------------
my @t = <DATA>;
my $t = join(' ',@t);
print $t;

$t =~ s/^.*(DHCP Renew).*\D{1}(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*$/
$2/s;

print "t: $t\n";

__DATA__

<TD width="22%" height=25>
<DIV align=right><FONT color=#000000><B><FONT face=Arial
                 size=2>Connection </FONT></B></FONT></DIV></TD>
                <TD width="78%" height=25><FONT face=Arial size=2>DHCP
Client
                  Connected <INPUT type=submit value="DHCP Release"
                <TD width="78%" height=25><FONT face=Arial
                  size=2>123.456.78.900 </FONT></TD></TR>
name=release> <INPUT type=submit value="DHCP Renew" name=renew>
                  </FONT></TD></TR>
              <TR>
                <TD width="22%" height=25>
                  <DIV align=right><FONT color=#000000><B><FONT
face=Arial
                  size=2>IP Address </FONT></B></FONT></DIV></TD>
                <TD width="78%" height=25><FONT face=Arial
                  size=2>177.33.152.123 </FONT></TD></TR>



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

Date: Wed, 21 Nov 2007 01:38:17 +0100
From: "Petr Vileta" <stoupa@practisoft.cz>
Subject: Re: Trouble with Regualar Expression Pattern
Message-Id: <fhvvc5$qt9$1@ns.felk.cvut.cz>

jhu wrote:
> I'm not sure how to piece together a pattern which will find an IP
> address after a specific string ?
>
>
> <TD width="22%" height=25>
> <DIV align=right><FONT color=#000000><B><FONT face=Arial
>                 size=2>Connection&nbsp;</FONT></B></FONT></DIV></TD>
>                <TD width="78%" height=25><FONT face=Arial size=2>DHCP
> Client
>                  Connected <INPUT type=submit value="DHCP Release"
> name=release>&nbsp;<INPUT type=submit value="DHCP Renew" name=renew>
>                  </FONT></TD></TR>
>              <TR>
>                <TD width="22%" height=25>
>                  <DIV align=right><FONT color=#000000><B><FONT
> face=Arial
>                  size=2>IP Address&nbsp;</FONT></B></FONT></DIV></TD>
>                <TD width="78%" height=25><FONT face=Arial
>                  size=2>177.33.152.123 </FONT></TD></TR>

I should go this way (I assume sniped above is in variable $code)

if($code=~m/^.+?>ip\s+address.+?>(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s*<.+$/is)
    {
    $ip = $1;
    }

-- 

Petr Vileta, Czech republic
(My server rejects all messages from Yahoo and Hotmail. Send me your mail 
from another non-spammer site please.)




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

Date: Wed, 21 Nov 2007 02:03:42 +0100
From: Gunnar Hjalmarsson <noreply@gunnar.cc>
Subject: Re: Trouble with Regualar Expression Pattern
Message-Id: <5qhefgFva6u6U1@mid.individual.net>

jkstill wrote:
> On Nov 20, 4:13 pm, jhu <jhu4...@yahoo.com> wrote:
>> So for example if the web page be searched is the snippet below and
>> what I want is to get the IP address 177.33.152.123. But I need to
>> make sure that the pattern search starts after the text "DHCP Renew"
>> because there are other IP addresses above the "DHCP Renew" but I have
>> enclosed only a snippet of the returned web page.
> 
> Though not perfect, this may get you started.
> Note that I included the '\D' preceding the IP address to detect the
> last character (non-digit) preceding the pattern.  Not doing so
> results in getting only the last digit of the first octet.
> 
> ---------------------------
> my @t = <DATA>;
> my $t = join(' ',@t);
> print $t;
> 
> $t =~ s/^.*(DHCP Renew).*\D{1}(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*$/
> $2/s;

Why use the s/// operator for just extracting something?

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


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

Date: Tue, 20 Nov 2007 17:13:10 -0800 (PST)
From: jhu <jhu4399@yahoo.com>
Subject: Re: Trouble with Regualar Expression Pattern
Message-Id: <eaed7a07-27f5-4d20-965e-e12531928e06@w28g2000hsf.googlegroups.com>

On Nov 20, 4:13 pm, jhu <jhu4...@yahoo.com> wrote:
> I'm not sure how to piece together a pattern which will find an IP
> address after a specific string ?
>
> So for example if the web page be searched is the snippet below and
> what I want is to get the IP address 177.33.152.123. But I need to
> make sure that the pattern search starts after the text "DHCP Renew"
> because there are other IP addresses above the "DHCP Renew" but I have
> enclosed only a snippet of the returned web page.
>
> I have the following \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} and that works
> to get the first available IP but not the one I want. Thanks in
> advance.
>
> <TD width="22%" height=25>
> <DIV align=right><FONT color=#000000><B><FONT face=Arial
>                  size=2>Connection </FONT></B></FONT></DIV></TD>
>                 <TD width="78%" height=25><FONT face=Arial size=2>DHCP
> Client
>                   Connected <INPUT type=submit value="DHCP Release"
> name=release> <INPUT type=submit value="DHCP Renew" name=renew>
>                   </FONT></TD></TR>
>               <TR>
>                 <TD width="22%" height=25>
>                   <DIV align=right><FONT color=#000000><B><FONT
> face=Arial
>                   size=2>IP Address </FONT></B></FONT></DIV></TD>
>                 <TD width="78%" height=25><FONT face=Arial
>                   size=2>177.33.152.123 </FONT></TD></TR>

Many thanks everyone. I'm going to work with the ones everyone has
given and go from there.


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

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 V11 Issue 1045
***************************************


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