[29385] in Perl-Users-Digest
Perl-Users Digest, Issue: 629 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Jul 6 21:14:18 2007
Date: Fri, 6 Jul 2007 18:14: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 Fri, 6 Jul 2007 Volume: 11 Number: 629
Today's topics:
Re: retrieving news messages <bik.mido@tiscalinet.it>
Re: retrieving news messages <bik.mido@tiscalinet.it>
Re: retrieving news messages <bik.mido@tiscalinet.it>
Re: retrieving news messages <noreply@gunnar.cc>
Re: retrieving news messages <invalid@invalid.nyet>
Re: retrieving news messages <noreply@gunnar.cc>
Re: retrieving news messages <uri@stemsystems.com>
Re: retrieving news messages <bik.mido@tiscalinet.it>
Re: retrieving news messages <bik.mido@tiscalinet.it>
Re: retrieving news messages <bik.mido@tiscalinet.it>
Re: retrieving news messages <spamtrap@dot-app.org>
validating a group of variables <webmaster@know.spam.customfitonline.com>
Re: validating a group of variables <simon.chao@gmail.com>
Re: validating a group of variables <simon.chao@gmail.com>
Re: validating a group of variables <tadmc@seesig.invalid>
Re: where to get a complete perldoc ? <bik.mido@tiscalinet.it>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Fri, 06 Jul 2007 17:45:20 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: retrieving news messages
Message-Id: <8ros83hh9iopuqiejj0r1f2309lub7emt6@4ax.com>
On Thu, 5 Jul 2007 17:25:51 -0400, "Wade Ward" <invalid@invalid.nyet>
wrote:
>Thanks for your reply. Since this program is, for me and perl, the one
>directly after hello world, I'm unable to do a lot of things that I could
>with other syntaxes.
Perhaps you should take some intermediate step between hello world and
"this program", seriously.
Michele
--
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
.'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
------------------------------
Date: Fri, 06 Jul 2007 17:52:51 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: retrieving news messages
Message-Id: <i2ps83d063rr1sfqco4kpv7avreb1s5rgg@4ax.com>
On Fri, 06 Jul 2007 02:37:46 +0200, Gunnar Hjalmarsson
<noreply@gunnar.cc> wrote:
>> my $nntp = Net::NNTP->new('newsgroups.comcast.net', { Debug => 1} );
>> die "Unable to create NNTP object" unless $nntp;
>
>Yes, but that check should better include an investigation of the
>contents of $!.
Are you sure? Nothing in the docs for N::N show that $! could be set
to hold any error given by the constructor:
: This is the constructor for a new Net::NNTP object. "HOST" is the
: name of the remote host to which a NNTP connection is required. If
: not given then it may be passed as the "Host" option described
: below. If no host is passed then two environment variables are
: checked, first "NNTPSERVER" then "NEWSHOST", then "Net::Config" is
: checked, and if a host is not found then "news" is used.
>"Invalid argument". So, let's try with passing the Debug option as two
>scalars instead of a hash ref:
Well, after all this does seem to be the case!
Michele
--
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
.'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
------------------------------
Date: Fri, 06 Jul 2007 21:04:46 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: retrieving news messages
Message-Id: <4i3t8314lv10gfvnom110c4spbjoq0tru0@4ax.com>
On Fri, 06 Jul 2007 11:18:35 +0200, Gunnar Hjalmarsson
<noreply@gunnar.cc> wrote:
>> When an object constructor fails, $! pretty much has nothing to do with
>> what the module is complaining about.
>
>Well, appropriate or not, but in this case it seems to have helped me
>detect a problem that noone else has mentioned so far (the braces).
Indeed in another post I also complained about either Net::NNTP's
constructor not to give appropriate debug into or its docs not to be
clear enough. OTOH inspecting the the source code of the module I see
no explicit setting of $! and I don't know if any of the stuff from
the used modules would do so either. Actually possible failures are:
: return undef
: unless defined $obj;
and
: unless ($obj->response() == CMD_OK)
: {
: $obj->close;
: return undef;
: }
OTOH I don't see how setting $! to some particular C library errno
would be a sane way to show the error. So that you actually detected a
problem seems to be a fortunate coincidence.
Michele
--
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
.'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
------------------------------
Date: Fri, 06 Jul 2007 21:24:37 +0200
From: Gunnar Hjalmarsson <noreply@gunnar.cc>
Subject: Re: retrieving news messages
Message-Id: <5f7jdjF390andU1@mid.individual.net>
Michele Dondi wrote:
> On Fri, 06 Jul 2007 02:37:46 +0200, Gunnar Hjalmarsson
> <noreply@gunnar.cc> wrote:
>
>>> my $nntp = Net::NNTP->new('newsgroups.comcast.net', { Debug => 1} );
>>> die "Unable to create NNTP object" unless $nntp;
>> Yes, but that check should better include an investigation of the
>> contents of $!.
>
> Are you sure?
No. And Joe seems to be sure that doing so is inappropriate...
>> "Invalid argument". So, let's try with passing the Debug option as two
>> scalars instead of a hash ref:
>
> Well, after all this does seem to be the case!
Or maybe it was just a coincidence.
--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl
------------------------------
Date: Fri, 6 Jul 2007 15:30:01 -0400
From: "Wade Ward" <invalid@invalid.nyet>
Subject: Re: retrieving news messages
Message-Id: <ts-dnb82jdjhBRPbnZ2dnUVZ_qCgnZ2d@comcast.com>
"Michele Dondi" <bik.mido@tiscalinet.it> wrote in message
news:8ros83hh9iopuqiejj0r1f2309lub7emt6@4ax.com...
> On Thu, 5 Jul 2007 17:25:51 -0400, "Wade Ward" <invalid@invalid.nyet>
> wrote:
>
>>Thanks for your reply. Since this program is, for me and perl, the one
>>directly after hello world, I'm unable to do a lot of things that I could
>>with other syntaxes.
>
> Perhaps you should take some intermediate step between hello world and
> "this program", seriously.
I thought that grabbing a usenet message in perl qualified as a baby step.
Apparently not.
--
Wade Ward
------------------------------
Date: Fri, 06 Jul 2007 21:29:48 +0200
From: Gunnar Hjalmarsson <noreply@gunnar.cc>
Subject: Re: retrieving news messages
Message-Id: <5f7jnbF3avnnqU1@mid.individual.net>
Michele Dondi wrote:
> On Fri, 06 Jul 2007 11:18:35 +0200, Gunnar Hjalmarsson
> <noreply@gunnar.cc> wrote:
>
>>> When an object constructor fails, $! pretty much has nothing to do with
>>> what the module is complaining about.
>> Well, appropriate or not, but in this case it seems to have helped me
>> detect a problem that noone else has mentioned so far (the braces).
<snip>
> I don't see how setting $! to some particular C library errno
> would be a sane way to show the error. So that you actually detected a
> problem seems to be a fortunate coincidence.
Yes, now I think so too.
--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl
------------------------------
Date: Fri, 06 Jul 2007 20:05:48 GMT
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: retrieving news messages
Message-Id: <x7ps35e1r7.fsf@mail.sysarch.com>
>>>>> "WW" == Wade Ward <invalid@invalid.nyet> writes:
WW> I thought that grabbing a usenet message in perl qualified as a
WW> baby step. Apparently not.
it is. you just haven't followed the baby path. learning about basic
object construction and testing results is a baby step. learning how to
follow the docs for passing in a user/pw is a baby step. knowing what
the actual user/pw should be is a baby step. all baby steps. with the
amount of help you got in this one thread you should be a teenager by
now. :)
uri
--
Uri Guttman ------ uri@stemsystems.com -------- http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org
------------------------------
Date: Fri, 06 Jul 2007 22:02:49 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: retrieving news messages
Message-Id: <9o7t839phg96brg4muck80r06qmkffvuo3@4ax.com>
On Fri, 6 Jul 2007 15:30:01 -0400, "Wade Ward" <invalid@invalid.nyet>
wrote:
>> Perhaps you should take some intermediate step between hello world and
>> "this program", seriously.
>I thought that grabbing a usenet message in perl qualified as a baby step.
>Apparently not.
You can answer yourself the implicit question: would you have
succeeded writing such a program yourself, without anyone giving you a
ready made one? I've not learnt from exercises myself, but from actual
needs: however initially they were more of the kind of writing offline
web pages from "templates". (As a very beginner I invented my own
will, and my requirements were very simple.) And then managing files
on a local machine.
Michele
--
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
.'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
------------------------------
Date: Fri, 06 Jul 2007 22:04:23 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: retrieving news messages
Message-Id: <708t83di36ir387sqg4vtsqiieqedfi3d3@4ax.com>
On Fri, 06 Jul 2007 21:24:37 +0200, Gunnar Hjalmarsson
<noreply@gunnar.cc> wrote:
>>> "Invalid argument". So, let's try with passing the Debug option as two
>>> scalars instead of a hash ref:
>>
>> Well, after all this does seem to be the case!
>
>Or maybe it was just a coincidence.
Well, *that* is the correct way to call the constructor. As can also
be seen from the code itself:
: if (@_ % 2) {
: $host = shift ;
: %arg = @_;
: } else {
: %arg = @_;
: $host=delete $arg{Host};
: }
Michele
--
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
.'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
------------------------------
Date: Fri, 06 Jul 2007 22:31:10 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: retrieving news messages
Message-Id: <1k9t83tho2u9cceajd1c7q9uu0o9u5vhtr@4ax.com>
On Fri, 06 Jul 2007 22:02:49 +0200, Michele Dondi
<bik.mido@tiscalinet.it> wrote:
>web pages from "templates". (As a very beginner I invented my own
>will, and my requirements were very simple.) And then managing files
Wheel. Apologies.
Michele
--
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
.'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
------------------------------
Date: Fri, 06 Jul 2007 21:03:41 -0400
From: Sherm Pendley <spamtrap@dot-app.org>
Subject: Re: retrieving news messages
Message-Id: <m2y7htvxci.fsf@dot-app.org>
Michele Dondi <bik.mido@tiscalinet.it> writes:
> On Fri, 06 Jul 2007 22:02:49 +0200, Michele Dondi
> <bik.mido@tiscalinet.it> wrote:
>
>>web pages from "templates". (As a very beginner I invented my own
>>will, and my requirements were very simple.) And then managing files
>
> Wheel. Apologies.
Getting your last wishes on record is a good thing - no need to apologize
for having written a will. :-)
sherm--
--
Web Hosting by West Virginians, for West Virginians: http://wv-www.net
Cocoa programming in Perl: http://camelbones.sourceforge.net
------------------------------
Date: Fri, 06 Jul 2007 23:13:05 GMT
From: "Robert Valcourt" <webmaster@know.spam.customfitonline.com>
Subject: validating a group of variables
Message-Id: <50Aji.92497$NV3.81857@pd7urf2no>
Hello,
We have been suffering much lately from users abusing our Website forms with
Spam. I have evaluated most of the spam submissions and im trying to modify
my custom form-to-email perl processor to check for common spam submission
and reject them. While this is not hard, im trying to streamline the scripts
efficiency. Below is an example:
#!/usr/bin/perl
use lib '/usr/local/psa/home/vhosts/mybizdomain.com/cgi-bin/lib/';
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use Mail::Sendmail;
use strict;
my $fullname = param('fullname');
my $emailaddy = param('emailaddy');
my $phone = param('phone');
my $company = param('company');
my $website = param('website');
my $completion = param('completion');
spamattempt() if $fullname =~ /viagra/i;
spamattempt() if $emailaddy =~ /viagra/i;
spamattempt() if $phone =~ /viagra/i;
spamattempt() if $fullname =~ /\@/;
The real script is much longer but you get the idea. Its checking each
defined variable for a spam match and then performing the spamattempt
subroutine if matched. I would like to know if there is a way to check ALL
variables against a single match. See example (not real perl cod):
spamattempt() if $ANYVARIBALE =~ /viagra/i;
I know I could assign all variables into an array and then cycle them trough
a foreach but im not sure that would be any more efficient.
I think the best way to do this would be to have the script check all
submitted queries before they are assigned to variables. By this is mean
before I start assigning param('fullname') to $fullname, there would be a
way to check any and all params submitted before assignment. I have a hunch
this can be done but I wouldn't know where to start.
Or maybe i'm approaching this wrong completely, and in that case I would
love to hear your thoughts.
Many Thanx
Robert
------------------------------
Date: Fri, 06 Jul 2007 23:53:03 -0000
From: it_says_BALLS_on_your_forehead <simon.chao@gmail.com>
Subject: Re: validating a group of variables
Message-Id: <1183765983.270252.153450@r34g2000hsd.googlegroups.com>
On Jul 6, 7:13 pm, "Robert Valcourt"
<webmas...@know.spam.customfitonline.com> wrote:
> Hello,
>
> We have been suffering much lately from users abusing our Website forms with
> Spam. I have evaluated most of the spam submissions and im trying to modify
> my custom form-to-email perl processor to check for common spam submission
> and reject them. While this is not hard, im trying to streamline the scripts
> efficiency. Below is an example:
>
> #!/usr/bin/perl
>
> use lib '/usr/local/psa/home/vhosts/mybizdomain.com/cgi-bin/lib/';
> use CGI qw(:standard);
> use CGI::Carp qw(fatalsToBrowser);
> use Mail::Sendmail;
> use strict;
>
> my $fullname = param('fullname');
> my $emailaddy = param('emailaddy');
> my $phone = param('phone');
> my $company = param('company');
> my $website = param('website');
> my $completion = param('completion');
>
> spamattempt() if $fullname =~ /viagra/i;
> spamattempt() if $emailaddy =~ /viagra/i;
> spamattempt() if $phone =~ /viagra/i;
> spamattempt() if $fullname =~ /\@/;
>
> The real script is much longer but you get the idea. Its checking each
> defined variable for a spam match and then performing the spamattempt
> subroutine if matched. I would like to know if there is a way to check ALL
> variables against a single match. See example (not real perl cod):
>
> spamattempt() if $ANYVARIBALE =~ /viagra/i;
>
> I know I could assign all variables into an array and then cycle them trough
> a foreach but im not sure that would be any more efficient.
>
> I think the best way to do this would be to have the script check all
> submitted queries before they are assigned to variables. By this is mean
> before I start assigning param('fullname') to $fullname, there would be a
> way to check any and all params submitted before assignment. I have a hunch
> this can be done but I wouldn't know where to start.
>
> Or maybe i'm approaching this wrong completely, and in that case I would
> love to hear your thoughts.
>
> Many Thanx
>
> Robert
use CGI ':cgi-lib';
$params = Vars;
Many people want to fetch the entire parameter list as a hash in which
the keys are the names of the CGI parameters, and the values are the
parameters' values. The Vars() method does this. Called in a scalar
context, it returns the parameter list as a tied hash reference.
Changing a key changes the value of the parameter in the underlying
CGI parameter list. Called in a list context, it returns the parameter
list as an ordinary hash. This allows you to read the contents of the
parameter list, but not to change it.
When using this, the thing you must watch out for are multivalued CGI
parameters. Because a hash cannot distinguish between scalar and list
context, multivalued parameters will be returned as a packed string,
separated by the "\0" (null) character. You must split this packed
string in order to get at the individual values. This is the
convention introduced long ago by Steve Brenner in his cgi-lib.pl
module for Perl version 4.
If you wish to use Vars() as a function, import the :cgi-lib set of
function calls (also see the section on CGI-LIB compatibility).
------------------------------
Date: Fri, 06 Jul 2007 23:55:03 -0000
From: it_says_BALLS_on_your_forehead <simon.chao@gmail.com>
Subject: Re: validating a group of variables
Message-Id: <1183766103.735020.24930@o61g2000hsh.googlegroups.com>
On Jul 6, 7:53 pm, it_says_BALLS_on_your_forehead
<simon.c...@gmail.com> wrote:
> On Jul 6, 7:13 pm, "Robert Valcourt"
>
>
>
> <webmas...@know.spam.customfitonline.com> wrote:
> > Hello,
>
> > We have been suffering much lately from users abusing our Website forms with
> > Spam. I have evaluated most of the spam submissions and im trying to modify
> > my custom form-to-email perl processor to check for common spam submission
> > and reject them. While this is not hard, im trying to streamline the scripts
> > efficiency. Below is an example:
>
> > #!/usr/bin/perl
>
> > use lib '/usr/local/psa/home/vhosts/mybizdomain.com/cgi-bin/lib/';
> > use CGI qw(:standard);
> > use CGI::Carp qw(fatalsToBrowser);
> > use Mail::Sendmail;
> > use strict;
>
> > my $fullname = param('fullname');
> > my $emailaddy = param('emailaddy');
> > my $phone = param('phone');
> > my $company = param('company');
> > my $website = param('website');
> > my $completion = param('completion');
>
> > spamattempt() if $fullname =~ /viagra/i;
> > spamattempt() if $emailaddy =~ /viagra/i;
> > spamattempt() if $phone =~ /viagra/i;
> > spamattempt() if $fullname =~ /\@/;
>
> > The real script is much longer but you get the idea. Its checking each
> > defined variable for a spam match and then performing the spamattempt
> > subroutine if matched. I would like to know if there is a way to check ALL
> > variables against a single match. See example (not real perl cod):
>
> > spamattempt() if $ANYVARIBALE =~ /viagra/i;
>
> > I know I could assign all variables into an array and then cycle them trough
> > a foreach but im not sure that would be any more efficient.
>
> > I think the best way to do this would be to have the script check all
> > submitted queries before they are assigned to variables. By this is mean
> > before I start assigning param('fullname') to $fullname, there would be a
> > way to check any and all params submitted before assignment. I have a hunch
> > this can be done but I wouldn't know where to start.
>
> > Or maybe i'm approaching this wrong completely, and in that case I would
> > love to hear your thoughts.
>
> > Many Thanx
>
> > Robert
>
> use CGI ':cgi-lib';
> $params = Vars;
>
> Many people want to fetch the entire parameter list as a hash in which
> the keys are the names of the CGI parameters, and the values are the
> parameters' values. The Vars() method does this. Called in a scalar
> context, it returns the parameter list as a tied hash reference.
> Changing a key changes the value of the parameter in the underlying
> CGI parameter list. Called in a list context, it returns the parameter
> list as an ordinary hash. This allows you to read the contents of the
> parameter list, but not to change it.
>
> When using this, the thing you must watch out for are multivalued CGI
> parameters. Because a hash cannot distinguish between scalar and list
> context, multivalued parameters will be returned as a packed string,
> separated by the "\0" (null) character. You must split this packed
> string in order to get at the individual values. This is the
> convention introduced long ago by Steve Brenner in his cgi-lib.pl
> module for Perl version 4.
>
> If you wish to use Vars() as a function, import the :cgi-lib set of
> function calls (also see the section on CGI-LIB compatibility).
FYI, the above info can be found on CPAN at:
http://search.cpan.org/~lds/CGI.pm-3.29/CGI.pm
------------------------------
Date: Sat, 07 Jul 2007 00:39:07 GMT
From: Tad McClellan <tadmc@seesig.invalid>
Subject: Re: validating a group of variables
Message-Id: <slrnf8to01.c51.tadmc@tadmc30.sbcglobal.net>
Robert Valcourt <webmaster@know.spam.customfitonline.com> wrote:
> We have been suffering much lately from users abusing our Website forms with
> Spam.
Right behind the spammers are...
> #!/usr/bin/perl
> my $fullname = param('fullname');
... the crackers!
You should never write a program that processes form input
without turning on taint checking.
perldoc perlsec
> spamattempt() if $fullname =~ /viagra/i;
> spamattempt() if $emailaddy =~ /viagra/i;
> spamattempt() if $phone =~ /viagra/i;
> I would like to know if there is a way to check ALL
> variables against a single match. See example (not real perl cod):
>
> spamattempt() if $ANYVARIBALE =~ /viagra/i;
spamattempt() if "$fullname $emailaddy $phone" =~ /viagra/i;
> I think the best way to do this would be to have the script check all
> submitted queries before they are assigned to variables. By this is mean
> before I start assigning param('fullname') to $fullname,
spamattempt() if param('fullname')
. param('emailaddy')
. param('phone') =~ /viagra/i;
--
Tad McClellan
email: perl -le "print scalar reverse qq/moc.noitatibaher\100cmdat/"
------------------------------
Date: Fri, 06 Jul 2007 21:10:35 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: where to get a complete perldoc ?
Message-Id: <fk4t839s0t2oek6d5mo5g0sj3nqbeuv2uc@4ax.com>
On Fri, 06 Jul 2007 06:46:39 -0700, Jie <jiehuang001@gmail.com> wrote:
>I am just curious, does your code knows which file is in chapter 1 and
>which file is in chapter 2??
Actually his code seems a very cool example about using PDF::Reuse,
which I've never used. So I find it very instructive. BUT it is clear
enough that it doesn't, for it simply sorts articles alphabetically.
OTOH, that I know, the perldoc documentation is *not* structured in
numbered articles anyway. So you can take his code as a base and
taylor it to your needs.
>if your code could generate a master PDF file for perldoc, can you
>please email it to me at jiehuang001@gmail.com ?
How about a complimentary bottle of champagne? ;-)
>Jie
>
>On Jul 5, 12:53 pm, "Lambik" <lam...@kieffer.nl> wrote:
Please do not top-post. It is annoying.
Michele
--
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
.'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
------------------------------
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 629
**************************************