[22721] in Perl-Users-Digest
Perl-Users Digest, Issue: 4942 Volume: 10
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Tue May 6 00:35:02 2003
Date: Mon, 5 May 2003 21:05:05 -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 Mon, 5 May 2003 Volume: 10 Number: 4942
Today's topics:
Array::Compare <sammie@greatergreen.com>
Re: Array::Compare <jurgenex@hotmail.com>
Re: Array::Compare <jkeen@concentric.net>
Re: Array::Compare <sammie@greatergreen.com>
Re: Array::Compare <sammie@greatergreen.com>
Can't write a LOG file, please help (Gino Vives)
Re: commenting script (Tad McClellan)
Re: forcing downloads <bigfoot@nwphenomenon.com>
In search of elegant code - parameter in grep? (David Filmer)
Re: Including files in Perl <jkeen@concentric.net>
Re: sockets, sysread <ben.goldberg@hotpop.com>
string substitutions with an array (AGoodGuyGoneBad)
Re: use LWP; and all it's children <grazz@pobox.com>
Re: What can i do now for learnling perl? (Randal L. Schwartz)
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Tue, 06 May 2003 01:53:51 GMT
From: "Brad Walton" <sammie@greatergreen.com>
Subject: Array::Compare
Message-Id: <KAEta.749125$F1.96360@sccrnsc04>
I am trying to compare to arrays, and determine not only if they are
different, but also what exactly is different. Example of what I have done
using Array::Compare:
----
use Array::Compare;
my @arr1 = (a,b,c,d);
my @arr2 = (b,c,d,e,f);
my $comp = Array::Compare->new;
$comp->full_compare(\@arr1, \@arr2);
----
The result should return 'a' and 'f'... And, this does seem to return some
sort of a hash. My question is, how do I access the hash and see what's
inside (i.e. print it out to console so I can view it, or store it to a
$variable)?
I am new to the more complex perl... Thanks for any help,
Brad
------------------------------
Date: Tue, 06 May 2003 02:32:33 GMT
From: "Jürgen Exner" <jurgenex@hotmail.com>
Subject: Re: Array::Compare
Message-Id: <59Fta.434$WA3.221@nwrddc03.gnilink.net>
Brad Walton wrote:
> I am trying to compare to arrays, and determine not only if they are
> different, but also what exactly is different. Example of what I have
> done using Array::Compare:
>
> ----
> use Array::Compare;
>
> my @arr1 = (a,b,c,d);
> my @arr2 = (b,c,d,e,f);
>
> my $comp = Array::Compare->new;
> $comp->full_compare(\@arr1, \@arr2);
> ----
>
> The result should return 'a' and 'f'... And, this does seem to return
> some sort of a hash. My question is, how do I access the hash and see
> what's inside (i.e. print it out to console so I can view it, or
> store it to a $variable)?
I suggest Data::Dumper
jue
------------------------------
Date: 06 May 2003 02:57:33 GMT
From: "James E Keenan" <jkeen@concentric.net>
Subject: Re: Array::Compare
Message-Id: <b978at$d39@dispatch.concentric.net>
"Brad Walton" <sammie@greatergreen.com> wrote in message
news:KAEta.749125$F1.96360@sccrnsc04...
> I am trying to compare to arrays, and determine not only if they are
> different, but also what exactly is different. Example of what I have done
> using Array::Compare:
>
> ----
> use Array::Compare;
>
> my @arr1 = (a,b,c,d);
> my @arr2 = (b,c,d,e,f);
>
> my $comp = Array::Compare->new;
> $comp->full_compare(\@arr1, \@arr2);
> ----
>
> The result should return 'a' and 'f'...
No, it shouldn't ... but I can understand why you're confused because the
documentation is very confusing. In the DESCRIPTION, the author first says:
In addition to the simple comparison described above (which returns
true
if the arrays are the same and false if they're different) there is
also
a full comparison which returns a list of elements which are
different.
However, the sample code he provides a few grafs down fails to include an
array assignment.
$comp->full_compare(\@arr1, \@arr2);
should probably be:
my @diffs = $comp->full_compare(\@arr1, \@arr2);
But, the plot thickens further. In his inline comments in &full_compare,
the author says that there is "no point in continuing if the number of
elements is different." To get what he describes as a meaningful return
value, he constructs a list with the range operator in which the lower value
is the last index number of the shorter array + 1 (equivalent to # elements
in shorter) and the upper value is the last index number of the longer
array. In your example, that would be the range (3+1)..4 ... i.e., 4..4 --
which is a list consisting solely of the value '4'. Now, why that is a
meaningful return value for the case of lists with different numbers of
elements escapes me.
That being said, I'm not sure why you expected the function to return 'a'
and 'f' but not 'e'. It appears you were looking for the symmetric
difference of the 2 lists, but that would have to include 'e'. (If this is
the case, then you should check out the List::Compare module on CPAN.)
> And, this does seem to return some
> sort of a hash. My question is, how do I access the hash and see what's
> inside (i.e. print it out to console so I can view it, or store it to a
> $variable)?
>
use Data::Dumper;
...
print Dumper($comp);
> I am new to the more complex perl... Thanks for any help,
I think you've stumbled on a situation where the module author's intention
is not clearly spelled out in the documentation.
------------------------------
Date: Tue, 06 May 2003 03:01:13 GMT
From: "Brad Walton" <sammie@greatergreen.com>
Subject: Re: Array::Compare
Message-Id: <ZzFta.748537$L1.212645@sccrnsc02>
Many thanks James (and Jurgen), I will sort out what you said here and look
at the other suggested option.
"James E Keenan" <jkeen@concentric.net> wrote in message
news:b978at$d39@dispatch.concentric.net...
>
> "Brad Walton" <sammie@greatergreen.com> wrote in message
> news:KAEta.749125$F1.96360@sccrnsc04...
> > I am trying to compare to arrays, and determine not only if they are
> > different, but also what exactly is different. Example of what I have
done
> > using Array::Compare:
> >
> > ----
> > use Array::Compare;
> >
> > my @arr1 = (a,b,c,d);
> > my @arr2 = (b,c,d,e,f);
> >
> > my $comp = Array::Compare->new;
> > $comp->full_compare(\@arr1, \@arr2);
> > ----
> >
> > The result should return 'a' and 'f'...
>
> No, it shouldn't ... but I can understand why you're confused because the
> documentation is very confusing. In the DESCRIPTION, the author first
says:
> In addition to the simple comparison described above (which
returns
> true
> if the arrays are the same and false if they're different) there
is
> also
> a full comparison which returns a list of elements which are
> different.
> However, the sample code he provides a few grafs down fails to include an
> array assignment.
> $comp->full_compare(\@arr1, \@arr2);
> should probably be:
> my @diffs = $comp->full_compare(\@arr1, \@arr2);
> But, the plot thickens further. In his inline comments in &full_compare,
> the author says that there is "no point in continuing if the number of
> elements is different." To get what he describes as a meaningful return
> value, he constructs a list with the range operator in which the lower
value
> is the last index number of the shorter array + 1 (equivalent to #
elements
> in shorter) and the upper value is the last index number of the longer
> array. In your example, that would be the range (3+1)..4 ... i.e.,
4..4 --
> which is a list consisting solely of the value '4'. Now, why that is a
> meaningful return value for the case of lists with different numbers of
> elements escapes me.
>
> That being said, I'm not sure why you expected the function to return 'a'
> and 'f' but not 'e'. It appears you were looking for the symmetric
> difference of the 2 lists, but that would have to include 'e'. (If this
is
> the case, then you should check out the List::Compare module on CPAN.)
>
> > And, this does seem to return some
> > sort of a hash. My question is, how do I access the hash and see what's
> > inside (i.e. print it out to console so I can view it, or store it to a
> > $variable)?
> >
> use Data::Dumper;
> ...
> print Dumper($comp);
>
> > I am new to the more complex perl... Thanks for any help,
>
> I think you've stumbled on a situation where the module author's intention
> is not clearly spelled out in the documentation.
>
>
------------------------------
Date: Tue, 06 May 2003 03:02:46 GMT
From: "Brad Walton" <sammie@greatergreen.com>
Subject: Re: Array::Compare
Message-Id: <qBFta.506323$Zo.110263@sccrnsc03>
Oh and yes, 'e' should have been there also. Just a mistake on my part.
"James E Keenan" <jkeen@concentric.net> wrote in message
news:b978at$d39@dispatch.concentric.net...
>
> "Brad Walton" <sammie@greatergreen.com> wrote in message
> news:KAEta.749125$F1.96360@sccrnsc04...
> > I am trying to compare to arrays, and determine not only if they are
> > different, but also what exactly is different. Example of what I have
done
> > using Array::Compare:
> >
> > ----
> > use Array::Compare;
> >
> > my @arr1 = (a,b,c,d);
> > my @arr2 = (b,c,d,e,f);
> >
> > my $comp = Array::Compare->new;
> > $comp->full_compare(\@arr1, \@arr2);
> > ----
> >
> > The result should return 'a' and 'f'...
>
> No, it shouldn't ... but I can understand why you're confused because the
> documentation is very confusing. In the DESCRIPTION, the author first
says:
> In addition to the simple comparison described above (which
returns
> true
> if the arrays are the same and false if they're different) there
is
> also
> a full comparison which returns a list of elements which are
> different.
> However, the sample code he provides a few grafs down fails to include an
> array assignment.
> $comp->full_compare(\@arr1, \@arr2);
> should probably be:
> my @diffs = $comp->full_compare(\@arr1, \@arr2);
> But, the plot thickens further. In his inline comments in &full_compare,
> the author says that there is "no point in continuing if the number of
> elements is different." To get what he describes as a meaningful return
> value, he constructs a list with the range operator in which the lower
value
> is the last index number of the shorter array + 1 (equivalent to #
elements
> in shorter) and the upper value is the last index number of the longer
> array. In your example, that would be the range (3+1)..4 ... i.e.,
4..4 --
> which is a list consisting solely of the value '4'. Now, why that is a
> meaningful return value for the case of lists with different numbers of
> elements escapes me.
>
> That being said, I'm not sure why you expected the function to return 'a'
> and 'f' but not 'e'. It appears you were looking for the symmetric
> difference of the 2 lists, but that would have to include 'e'. (If this
is
> the case, then you should check out the List::Compare module on CPAN.)
>
> > And, this does seem to return some
> > sort of a hash. My question is, how do I access the hash and see what's
> > inside (i.e. print it out to console so I can view it, or store it to a
> > $variable)?
> >
> use Data::Dumper;
> ...
> print Dumper($comp);
>
> > I am new to the more complex perl... Thanks for any help,
>
> I think you've stumbled on a situation where the module author's intention
> is not clearly spelled out in the documentation.
>
>
------------------------------
Date: 5 May 2003 21:01:26 -0700
From: gino_vives@yahoo.com (Gino Vives)
Subject: Can't write a LOG file, please help
Message-Id: <61f4ab48.0305052001.52441ab3@posting.google.com>
I wrote a little programe in perl and I haven't be able to write a log
file, first I use the shell comand: "programe >> logfile" and using
lines like:
print "Some text over here";
As it didn't work I chage the print lines to: (befor I wrote "open
(LOG ...);")
print LOG "Some text over here";
Neither of theses solutions wrote into a file, but the first one (if I
just esecute "programe") does write in the screen (STDOUT???)
HELPPPPPPPPPPPPPP!!!! (I feel like a beatle, lmao)
Here is the script: (The comments are in spanish ;) )
#! /usr/local/bin/perl
#ESTA UTILIDAD FUE DISEÑADA Y PROGRAMADA POR JOSE MIGUEL VIVES
#DUDAS, COMENTARIOS O COOPERACIONES A: jvives@ing.uchile.cl
while ("1") {
open (LOG , ">> ../logfile");
#Vemos la fecha:
@fecha = `date`;
$i=0;
while (<@fecha>) {
if (/(.*)$/) {
if ($i == 2) {
$dia = $1;
}
}
$i++;
}
#Ahora vemos cual es el último día del mes
@calendario = `cal`;
$ultimo = 0;
$numeros = 0;
while (<@calendario>) {
if ($numeros) {
$ultimo ++;
}
if (/(.*)/) {
if ($1 eq "S") {
$numeros = 1;
}
}
}
$ultimo = $ultimo -6;
print LOG "Hoy es $dia y el último día de este mes es $ultimo\n";
#si los días coinciden, el programa continúa...
if ($dia == $ultimo) {
print LOG "programa \"salva tus hojas\" comenzado!!!\n";
@papel = `lpquota`;
$hojas;
$hay = 0;
#de forma mágica vemos cuanto papel queda (???)
while (<@papel>) {
if ($hay && /(.*)/) {
$hojas = $1;
$hay = 0;
}
if (/papel(.*)/) {
$hay = 1;
}
}
#una vez obtenida la cantidad de hojas...
if ($hojas <= 2) {
print LOG "lo sentimos, su saldo es insuficiente, intente el proximo
mes\n";
exit;
}
else {
print LOG "hay $hojas hojas disponibles\nAhora se imprimiran,
espere...\n";
# descontamos al saldo la hoja utilizada en la portada
$hojas --;
$hojas = $hojas/2;
$i=2;
$texto = "hojas.pdf";
while ($i<$hojas) {
$texto="$texto hojas.pdf";
$i++;
}
$respuesta1 = `lpr -oficio -simplex $texto`;
$respuesta2 = `lpr -oficio -simplex $texto`;
print LOG "la impresión ya se llevó a cabo, la respuesta fue\n";
print LOG $respusta1;
print LOG $respusta2;
break;
}
}
#espera un dia menos un segundo
close LOG;
sleep 86399;
}
------------------------------
Date: Mon, 5 May 2003 22:01:41 -0500
From: tadmc@augustmail.com (Tad McClellan)
Subject: Re: commenting script
Message-Id: <slrnbbe9cl.2qc.tadmc@magna.augustmail.com>
RonMaras <remaras@earthlink.net> wrote:
> I am looking for a commenting script for my blog site.
OK.
--
Tad McClellan SGML consulting
tadmc@augustmail.com Perl programming
Fort Worth, Texas
------------------------------
Date: Mon, 5 May 2003 23:29:59 -0400
From: "Ice Demon" <bigfoot@nwphenomenon.com>
Subject: Re: forcing downloads
Message-Id: <b97a7t$g8rcq$1@ID-184113.news.dfncis.de>
"Marshall Dudley" <mdudley@execonn.com> wrote in message
news:3EB69A0A.D8F2545B@execonn.com...
> I have a customer who's web site I am doing who sells ebooks. These
> books come in several formats, pdf, html, zip, MS reader, rocket file,
> Mobi file.
>
> I have two problems.
>
> The first problem is that I cannot find a mime type for some of these
> formats. Thus I have no idea what I should be putting in the content
> type header part.
>
> But more importantly if there is a way I can force the file to download,
> that would be better. The reason is that people end up purchasing the
> book, then during the several days it can take to read it, end up with
> the browser crashing or Windows crashing, or end up closing it out
> prematurily.
>
> Then they are unable to finish the book, and want to get it again free.
>
> So what I need is to know if there is any type I can specify for them
> that will always result in a download?
>
> I tried this question in the html group, but I think eeryone there only
> knows how to set types to do what you want from the windows user end,
> not the server end.
>
> Thanks,
>
> Marshall
Here is what I do.
print "Content-Disposition: attachment; filename = file\n\n";
open(INX, "/path/to/file") || die("Can't open(file): $!");
binmode(INX);
$/ = undef;
$data = <INX>;
close(INX);
binmode(STDOUT);
print $data;
I haven't had any problems with using the above so far. It might not work in
all browsers. It's really up the the browser on how to handle it. Just
change where it says "file" to the file that you want downloaded.
Ice Demon
http://adult-xxx-newsgroups.com
http://adult-cybergames.com
http://adult-spider.com
------------------------------
Date: 5 May 2003 21:08:45 -0700
From: IneverReadAnythingSentToMe@hotmail.com (David Filmer)
Subject: In search of elegant code - parameter in grep?
Message-Id: <e4c916dd.0305052008.4b96710d@posting.google.com>
I can do this:
my $category = param('category');
print grep (/$category/, @LIST);
(where 'param' is a CGI.pm type object)
but I don't like creating the variable $category.
What I would rather do is:
print grep(/param('category')/, @LIST);
but that doesn't seem to work...
Does anyone know what syntax I need to do the grep without creating an
intermediate variable?
------------------------------
Date: 06 May 2003 02:15:49 GMT
From: "James E Keenan" <jkeen@concentric.net>
Subject: Re: Including files in Perl
Message-Id: <b975sl$s2u@dispatch.concentric.net>
"PropART" <temp1_NO_SPAM_@williamc.com> wrote in message
news:3EB701D1.42CB0078@williamc.com...
>
>
> James E Keenan wrote:
>
> > No 'our' in the include file: It contains only:
> > $SERVER = 'foo';
> > Assuming you want to 'use strict' (and you should), you are.
>
> I mentioned that I tried using our in the included file. Are you saying
> that this should work (and I did something wrong), or that use strict
> precludes having it both ways? It looks like you're saying both :)
>
In case I wasn't clear before ... here's the script:
use strict;
use warnings;
our ($SERVER);
my $include_file = "require.pl";
require $include_file;
print '$SERVER is ', $SERVER, "\n";
. ..and here's the included file (the name 'require.pl' is arbitrary; it
could just as easily be 'require.txt')
$SERVER = 'foo';
Hence, no 'our' in the included file ... only in the script.
> I was hoping that there was some way I didn't know about e.g. making the
> included file a module, but I don't know squat about object oriented
> Perl...
>
Two points:
1. Perl has 2 types of modules: (a) "traditional", non-object-oriented
modules which export their symbols (generally, their subroutines) into the
main package; and (b) object-oriented modules which do not export any
symbols but which provide methods. So knowing little about OOP does not
disqualify you from considering a non-OOP module. See 'perldoc perlmod' ...
go down to the section on Perl Modules.
2. That being said, here you're only looking to import the name of a
scalar, not a subroutine, into your main package. For this, you don't need
modules; a separate text file with the scalar (or array or hash) will
suffice. Predeclare the variable in the main package with 'our'; then
import with 'require' (or, under some circumstances, 'do') and you will have
no problem, with little fuss.
------------------------------
Date: Mon, 05 May 2003 22:21:18 -0400
From: Benjamin Goldberg <ben.goldberg@hotpop.com>
Subject: Re: sockets, sysread
Message-Id: <3EB71C1E.39019333@hotpop.com>
Stijn Meurkens wrote:
>
> Hello,
>
> I'm catching messages from a socket with sysread, but now it happens
> sometimes that multiple messages are stored in one string. How can I
> prevent this, or how can I split this string up (splitting up by
> newlines doesn't work; newlines can be part of a message).
There are any number of possible solutions; which ones apply to your
situation will depend on how you define a message, and how much control
you have over the server.
The best solution is to not worry about getting more than one message in
each sysread -- simply identify how much of the string is the first
message, and remove it from the string, and use the four-argument
version of sysread to add more data into the string. Something like:
my $str = "";
while( sysread $fh, $str, 8192, length $str ) {
while( has_a_message( $str ) ) {
my $msg_len = length_of_first_message( $str );
my $msg = substr( $str, 0, $msg_len, "" );
# process $msg.
}
}
[untested]
Your code doesn't have to look like this literally... For example, if
messages were CRLF-terminated lines, you might write code like:
my $str = "";
while( sysread $fh, $str, 8192, length $str ) {
while( $str =~ s/(.*?)$CRLF//so ) {
my $msg = $1;
# process $msg.
}
}
[untested]
Or perhaps:
my $str = "";
while( sysread $fh, $str, 8192, length $str ) {
my @msgs = split /$CRLF/, $str, -1;
$str = pop @msgs;
for my $msg ( @msgs ) {
# process $msg.
}
}
[untested]
Now, obviously you can't quite do this -- your messages can contain
newlines (however you are choosing to define newline... You *do* realize
that this can vary from platform to platform, right?).
Are your messages of fixed length? Does each message start with
something like "\nFrom ", like elements of an mbox file?
Something else?
If there's no simple delimiter, and if you have the ability to change
the server sending the messages, then the obvious solution would be as
follows: Before sending each message, it should send the length of that
message, as a 4-byte network-endian (bigendian) integer. Then, the
receiver knows which bytes are from which message. Some sample code for
reading such messages is:
my ($str, $msglen) = ("");
while( sysread $fh, $str, 8192, length $str ) {
while( defined($msglen) or length($str) >= 4 ) {
$msglen = unpack "N", substr $str, 0, 4, ""
unless defined $msglen;
last if length $str < $msglen;
my $msg = substr $str, 0, $msglen, "";
undef $msglen;
# process $msg.
}
}
[untested]
Another possibility would be to switch from a stream (tcp) connection to
a datagram (udp) connection -- you'll never get two messages squished
together; each one will be wholly independent of the others. Of course,
you now have the problem that they might be out of order, and some might
be lost, but depending on your purposes, this might be ok.
--
$a=24;split//,240513;s/\B/ => /for@@=qw(ac ab bc ba cb ca
);{push(@b,$a),($a-=6)^=1 for 2..$a/6x--$|;print "$@[$a%6
]\n";((6<=($a-=6))?$a+=$_[$a%6]-$a%6:($a=pop @b))&&redo;}
------------------------------
Date: 06 May 2003 01:36:55 GMT
From: agoodguygonebad@aol.com (AGoodGuyGoneBad)
Subject: string substitutions with an array
Message-Id: <20030505213655.01675.00001114@mb-m28.aol.com>
I have a string (buffer1) of x length and an array of n elements.
The element lengths vary from 12 to 4 characters
I'm using
for ($i=0; $i <n; $i++ {
$buf1=~ s/$array[$i]/($i)/g
}
when I print $buf1, I get something like
xy(205)(64)gg(83)jk(128)
the last 256 elements of my array should match any 4 character group, so $buf1
should be more like
(205)(64)(512)(323)(56)
where there are no characters outside of the brackets, except on the far right
In other words, I need to take the first 12 characters of $buf1, see if they
match
if not, try first 11, if not take first 10 ....
So a substitution is as long as possible, and starts on the leftmost char.
Then take the next group of 12... etc
I know there is a way to look for a match in the first word of a sentence, but
my buffer doesn't have any spaces. I also need to not do it in a loop somehow,
and get rid of the global.
Anyone know an easy way to do this ?
here's an example.
$tray[0]="ijklmno";
$tray[1]="cdefghi";
$tray[2]="bcdefg";
$tray[3]="abcde";
$tray[4]="ghij";
$tray[5]="pqrst";
$tray[6]="abcd";
$tray[7]="efgh";
$tray[8]="ijkl";
$buf1="abcdefghijklmnopq";
print "buffer is $buf1\n";
for ($i=0; $i < 9; $i++) {
$buf1=~ s/$tray[$i]/($i)/g
}
print "buffer is $buf1\n";
this prints a(2)h(0)pq
but I need it to be
(6)(7)(0)pq
tia
Steve
------------------------------
Date: Tue, 06 May 2003 01:43:15 GMT
From: Steve Grazzini <grazz@pobox.com>
Subject: Re: use LWP; and all it's children
Message-Id: <TqEta.20$sH6.82271@twister.nyc.rr.com>
Sam Jesse <samj@austarmetro.com.au> wrote:
> Hello again. I guss I am still learning the perl culture.
> in this example
> #!/perl -w
> use strict;
> use LWP::Simple;
> if I replace the (use LWP::Simple;) with (use LWP;) wouldn't
> that use LWP and all its childern like Simple, UserAgent, .....
> etc)
Not at all.
The use() builtin will try to load one .pm file and call
the import() subroutine from one package.
$ perldoc -f use
It might happen that the .pm file "use"s or "require"s some
other modules (have a look at LWP.pm and see for yourself)
but this isn't required.
> or do I have to state each one thus have to know about each
> one's functions and it's usage?
If you want to call a subroutine from, e.g., LWP::UserAgent,
then of course you need to know about that function and its
usage.
If LWP::UserAgent::request() depends on some other modules,
you shouldn't need to worry about loading those other modules.
--
Steve
------------------------------
Date: 05 May 2003 20:01:25 -0700
From: merlyn@stonehenge.com (Randal L. Schwartz)
Subject: Re: What can i do now for learnling perl?
Message-Id: <86el3c7p8a.fsf@red.stonehenge.com>
*** post for FREE via your newsreader at post.newsfeed.com ***
>>>>> "kevin" == kevin <jl.cd@163.com> writes:
kevin> Hello everyone:
kevin> I am a newbie of perl.I just learn the perl for 2 weeks.And i have read the
kevin> <<learning perl>>.What could i do now for the next learning?Do some coding? or
kevin> reading the <<programming perl>> or do some cgi exercise?
kevin> Please give me some advices for my study.
Well, if you liked my Learning Perl, you could read my 165+ columns at:
http://www.stonehenge.com/merlyn/UnixReview/
http://www.stonehenge.com/merlyn/LinuxMag/
http://www.stonehenge.com/merlyn/WebTechniques/
And, the sequel to the Llama is coming out very soon now. See
http://www.oreilly.com/catalog/lrnperlorm/
print "Just another Perl hack writer," :)
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!
-----= Posted via Newsfeed.Com, Uncensored Usenet News =-----
http://www.newsfeed.com - The #1 Newsgroup Service in the World!
-----== 100,000 Groups! - 19 Servers! - Unlimited Download! =-----
------------------------------
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.
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 4942
***************************************