[28657] in Perl-Users-Digest
Perl-Users Digest, Issue: 10021 Volume: 10
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Thu Nov 30 00:06:09 2006
Date: Wed, 29 Nov 2006 21:05:14 -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 Wed, 29 Nov 2006 Volume: 10 Number: 10021
Today's topics:
Re: CGI parsing <tadmc@augustmail.com>
Re: CGI parsing <tadmc@augustmail.com>
Re: Compare UNIX file time with time in a variable <phynkel@gmail.com>
Re: Compare UNIX file time with time in a variable <phynkel@gmail.com>
Re: Compare UNIX file time with time in a variable <phynkel@gmail.com>
Dynamic object creation <b.mahdi@gmail.com>
Re: FAQ 1.8 Is Perl difficult to learn? <spamtrap@dot-app.org>
How to copy a file and force overwirte in perl <cylix2000@gmail.com>
Re: How to copy a file and force overwirte in perl <mritty@gmail.com>
Re: Masking/Hiding a password in Perl Source (J.D. Baldwin)
Re: Regex failed to replace utf8 character <benmorrow@tiscali.co.uk>
Re: using DateTime object <clifton_francis@hotmail.com>
Re: using DateTime object <benmorrow@tiscali.co.uk>
Re: using DateTime object <benmorrow@tiscali.co.uk>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Wed, 29 Nov 2006 18:17:01 -0600
From: Tad McClellan <tadmc@augustmail.com>
Subject: Re: CGI parsing
Message-Id: <slrnems8nt.5u8.tadmc@tadmc30.august.net>
Charlton Wilbur <cwilbur@chromatico.net> wrote:
>>>>>> "TMcC" == Tad McClellan <tadmc@augustmail.com> writes:
>
> TMcC> Gunnar Hjalmarsson <noreply@gunnar.cc> wrote:
>
> >> But hey, things have improved. A couple of years ago, when
> >> someone revealed that they were using their own code for
> >> parsing CGI, about 10 regulars told that person that s/he was
> >> stupid. Nowadays only one or two regulars do the same
> >> thing. ;-)
>
> TMcC> Because there are now eight less regulars!
>
> Eight fewer *knowledgeable* regulars, surely.
Or eight fewer *curmudgeonly* regulars, frankly.
--
Tad McClellan SGML consulting
tadmc@augustmail.com Perl programming
Fort Worth, Texas
------------------------------
Date: Wed, 29 Nov 2006 18:17:59 -0600
From: Tad McClellan <tadmc@augustmail.com>
Subject: Re: CGI parsing
Message-Id: <slrnems8pn.5u8.tadmc@tadmc30.august.net>
John W. Krahn <someone@example.com> wrote:
> Tad McClellan wrote:
>> Gunnar Hjalmarsson <noreply@gunnar.cc> wrote:
>>
>>>But hey, things have improved. A couple of years ago, when someone
>>>revealed that they were using their own code for parsing CGI, about 10
>>>regulars told that person that s/he was stupid. Nowadays only one or two
>>>regulars do the same thing. ;-)
>>
>>
>> Because there are now eight less regulars!
>
> Probably up north helping Santa this time of the year. :-)
Well that's where the nice ones probably are.
The naughty ones are probably still here though...
--
Tad McClellan SGML consulting
tadmc@augustmail.com Perl programming
Fort Worth, Texas
------------------------------
Date: 29 Nov 2006 19:01:08 -0800
From: "phynkel@gmail.com" <phynkel@gmail.com>
Subject: Re: Compare UNIX file time with time in a variable
Message-Id: <1164855668.663964.125110@16g2000cwy.googlegroups.com>
That's neat. Will Red Hat Linux, by default use GNU find? Now if only
GNU find would sort the output by file date. I can do that in PERL so
it's no biggy
My hack (touching a file and comparing time stamps) works fine.
TX
Big and Blue wrote:
> phynkel@gmail.com wrote:
> >
> >> Have a look at File::Find. Much easier to use from within a Perl script,
> >> and allows you to write a callback function that can use whatever criteria
> >> you want to filter out files you're not interested in.
> >>
> > TX - will look it up .
>
> And if you still decide to use command line find, use GNU find, which
> has -amin, -cmin, -mmin options which allows you to find files accessed,
> (inode-)changed or modified before (+n), after (-n) or exactly at (n) n
> minutes ago.
>
>
> --
> Just because I've written it doesn't mean that
> either you or I have to believe it.
------------------------------
Date: 29 Nov 2006 19:01:16 -0800
From: "phynkel@gmail.com" <phynkel@gmail.com>
Subject: Re: Compare UNIX file time with time in a variable
Message-Id: <1164855675.994684.65740@n67g2000cwd.googlegroups.com>
That's neat. Will Red Hat Linux, by default use GNU find? Now if only
GNU find would sort the output by file date. I can do that in PERL so
it's no biggy
My hack (touching a file and comparing time stamps) works fine.
TX
Big and Blue wrote:
> phynkel@gmail.com wrote:
> >
> >> Have a look at File::Find. Much easier to use from within a Perl script,
> >> and allows you to write a callback function that can use whatever criteria
> >> you want to filter out files you're not interested in.
> >>
> > TX - will look it up .
>
> And if you still decide to use command line find, use GNU find, which
> has -amin, -cmin, -mmin options which allows you to find files accessed,
> (inode-)changed or modified before (+n), after (-n) or exactly at (n) n
> minutes ago.
>
>
> --
> Just because I've written it doesn't mean that
> either you or I have to believe it.
------------------------------
Date: 29 Nov 2006 19:01:46 -0800
From: "phynkel@gmail.com" <phynkel@gmail.com>
Subject: Re: Compare UNIX file time with time in a variable
Message-Id: <1164855706.873704.24770@l12g2000cwl.googlegroups.com>
That's neat. Will Red Hat Linux, by default use GNU find? Now if only
GNU find would sort the output by file date. I can do that in PERL so
it's no biggy
My hack (touching a file and comparing time stamps) works fine.
TX
Big and Blue wrote:
> phynkel@gmail.com wrote:
> >
> >> Have a look at File::Find. Much easier to use from within a Perl script,
> >> and allows you to write a callback function that can use whatever criteria
> >> you want to filter out files you're not interested in.
> >>
> > TX - will look it up .
>
> And if you still decide to use command line find, use GNU find, which
> has -amin, -cmin, -mmin options which allows you to find files accessed,
> (inode-)changed or modified before (+n), after (-n) or exactly at (n) n
> minutes ago.
>
>
> --
> Just because I've written it doesn't mean that
> either you or I have to believe it.
------------------------------
Date: 29 Nov 2006 20:51:26 -0800
From: "bingo" <b.mahdi@gmail.com>
Subject: Dynamic object creation
Message-Id: <1164862286.461321.38250@n67g2000cwd.googlegroups.com>
Hi all,
I was wondering if anyone could help me with this one. I need to create
objects in Perl at runtime ...
Users enter the type of class ex.: (ClassA classB classC) which are all
children of classX
When i need to create an object i do
$handler = ClassX::ClassA->new();
Any hints on how i can create objects at runtime ?
Thanks for the help.
M.
------------------------------
Date: Wed, 29 Nov 2006 18:14:26 -0500
From: Sherm Pendley <spamtrap@dot-app.org>
Subject: Re: FAQ 1.8 Is Perl difficult to learn?
Message-Id: <m2vekxg819.fsf@Sherm-Pendleys-Computer.local>
brian d foy <brian.d.foy@gmail.com> writes:
> In article <chju34-hlq.ln1@osiris.mauzo.dyndns.org>, Ben Morrow
> <benmorrow@tiscali.co.uk> wrote:
>
>> Quoth PerlFAQ Server <brian@stonehenge.com>:
>> <snip>
>> > Things that make Perl easier to learn: Unix experience, almost any kind
>> > of programming experience, an understanding of regular expressions, and
>> > the ability to understand other people's code. If there's something you
>> > need to do, then it's probably already been done, and a working example
>> > is usually available for free. Don't forget the new perl modules,
>> ^^^
>> They aren't exactly 'new' any more :).
>
> I'm not even sure what "new" is supposed to mean.
Modules were a new addition to Perl 5. With Perl 4, one had to "do()" a .pl
file, and there was no automagic mechanism to import its subs into your own
name space.
So like Ben said, they're not exactly "new" any more - they're only four
years short of being able to get their driver's license.
sherm--
--
Web Hosting by West Virginians, for West Virginians: http://wv-www.net
Cocoa programming in Perl: http://camelbones.sourceforge.net
------------------------------
Date: 29 Nov 2006 19:34:55 -0800
From: "Jay@HK" <cylix2000@gmail.com>
Subject: How to copy a file and force overwirte in perl
Message-Id: <1164857695.124316.72280@80g2000cwy.googlegroups.com>
I have to write a perl script to copy and overwrite a file,
I tried to use file::copy but it seems no options for force overwrite
the destination file.
please advise.
Thanks!
------------------------------
Date: 29 Nov 2006 19:40:09 -0800
From: "Paul Lalli" <mritty@gmail.com>
Subject: Re: How to copy a file and force overwirte in perl
Message-Id: <1164858009.195200.239200@16g2000cwy.googlegroups.com>
Jay@HK wrote:
> I have to write a perl script to copy and overwrite a file,
> I tried to use file::copy but it seems no options for force overwrite
> the destination file.
> please advise.
What are you talking about? File::Copy *does* overwrite the
destination file.
$ cat > file1.txt
THIS IS FILE ONE
$ cat > file2.txt
this is the second file
$ perl -MFile::Copy -e'copy "file1.txt", "file2.txt"'
$ cat file2.txt
THIS IS FILE ONE
$
Paul Lalli
------------------------------
Date: Wed, 29 Nov 2006 23:28:20 +0000 (UTC)
From: INVALID_SEE_SIG@example.com.invalid (J.D. Baldwin)
Subject: Re: Masking/Hiding a password in Perl Source
Message-Id: <ekl52k$42p$1@reader2.panix.com>
[Bcc-ed to poster due to age of article]
In the previous article, Chris G. <nospam@example.com> wrote:
> I have written a Perl script that connects to various networking
> devices and downloads their configurations to a TFTP server. This
> is working great and I want to enhance its security by masking the
> password somehow. Currently, I hardcode a variable to the password.
>
> $password = 'mypassword';
>
> In the interest of security, I want to find a way to mask this. I'm
> not sure how to go about it though. I don't want to have a
> plain-text password on the system anywhere.
>
> Any suggestions?
I came in here looking for a generalized solution to this. With the
understanding that all that is being accomplished here is obfuscation,
NOT any genuine "security," I have a solution I am considering turning
into a module. I am interested in comments as to whether it would be
a useful module (including naming suggestions).
I have two functions: encryptpw and decryptpw. Only decryptpw actually
belongs in your program. Given a directory $ACCESSDIR, account name
$acctname, and password $pw, encryptpw creates a random key and stores
the key and password directly in file $ACCESSDIR/$acctname.
So, once you run encryptpw, you'll have a file that looks like this
(dummy data):
ab7458e29a2e01e4b566b8541dfe3a2326312a539fc4bb158eb1c83ff
53616c7465645f5f8d8ad43ea2bc5678a2c43c59a245d239abcb2ff3d67d1acf0eeb7d27
You only need to do this once (well, again whenever you change the
password, but you get the idea).
Set the file read permissions on the above file such that only
authorized users (e.g., group members, ACL-designated users, whatever)
can read it.
Then, in the program, run decryptpw to get the password back, and
store it in a variable.
The "encryptpw" function is currently actually a standalone program,
encrypt.pl. I have included a slightly sanitized encrypt.pl and
decryptpw below.
Once again, ALL this does for you is keep from having a password
sitting out there naked in the text of your script. Anyone with read
access to the "encrypted" password file who knows anything at all
about Perl can read the password directly with his own copy of
decryptpw and the print statement.
I know the storage/retrieval is a little kludgy, particularly the
0-padding. I am working on a new version that relies on Storable, now
that I know about Storable.
================ encrypt.pl:
#!/usr/bin/perl -w
use Crypt::CBC;
use Digest::MD5 qw(md5_hex);
$BASEDIR = "/my/basedir";
$ACCESSDIR = "$BASEDIR/access";
umask 077;
while ( 1 )
{
print "Please input an account name: ";
$acctname = <STDIN>;
chomp $acctname;
last if ( length($acctname) );
}
if ( ( $acctname =~ /^(en|de)crypt.pl$/ ) || ( $acctname eq "README" ) )
{
# I (stupidly? keep the scripts in $ACCESSDIR -- don't ever allow
# overwriting of the scripts!
print "FATAL ERROR: Cannot overwrite script $acctname\n";
exit -1;
}
system("stty -echo");
while ( 1 )
{
$pw1 = '';
while ( ! length($pw1) )
{
print "\n";
$strlen = length("Please input the password for account $acctname: ");
printf ("%${strlen}s",
"Please input the password for account $acctname: ");
chomp($pw1=<STDIN>);
}
$pw2 = '';
printf ("\n%${strlen}s", "Please verify the password: ");
chomp($pw2=<STDIN>);
print "\n";
last if ( $pw1 eq $pw2 );
print "\nPassword mismatch - try again\n";
}
system("stty echo");
# Pad $pw1 out to eight bytes if necessary:
$pw1 .= "\0"x(8 - length($pw1));
# Generate two 32-byte hex strings
$bigkey = md5_hex(rand) . md5_hex(rand);
# Take the first 56 characters of this, which will be our ASCII key:
$key = substr($bigkey, 0, 56);
$binkey = pack("H*", $key);
$cipher = Crypt::CBC->new( -key => $binkey,
-cipher => 'Blowfish',
-header => "randomiv",
);
$ciphertext = $cipher -> encrypt($pw1);
$ascii_armor = unpack("H*", $ciphertext);
if ( -e "$ACCESSDIR/$acctname" )
{
print "$ACCESSDIR/$acctname exists and will be overwritten, OK [y/N]? ";
chomp ($answer = <STDIN>);
# Acceptable affirmative answers are Y, y, Yes, yes:
if ( ! ( $answer =~ /^[Yy]([Ee][Ss])?$/ ) )
{
print "ABORTING, no action taken\n";
exit 0;
}
}
unless ( open(OUTFILE, ">$ACCESSDIR/$acctname") )
{
die "Unable to open $ACCESSDIR/$acctname for writing: $!";
}
print OUTFILE "$key\n$ascii_armor\n";
close OUTFILE;
================ decryptpw:
use Crypt::CBC;
$BASEDIR = "/must/be/same/as/used/by/encrypt.pl/of/course!";
$ACCESSDIR = "$BASEDIR/access";
sub decryptpw
{
# Takes one argument: the name of an account for which a password
# has been stored in $ACCESSDIR under the name of the account
$acctname = $_[0];
unless ( open(INFILE, "$ACCESSDIR/$acctname") )
{
die "Unable to open $ACCESSDIR/$acctname for reading: $!";
}
chomp ($key = <INFILE>)
or die "Cannot read key from $ACCESSDIR/$acctname";
chomp ($ascii_armor = <INFILE>)
or die "Cannot read pw hash from $ACCESSDIR/$acctname";
close INFILE;
$binkey = pack("H*", $key);
$ciphertext = pack("H*", $ascii_armor);
$cipher = Crypt::CBC->new( -key => $binkey,
-cipher => 'Blowfish'',
-header => "randomiv",
);
$pass = $cipher -> decrypt($ciphertext);
# Get rid of the null characters we used to pad the password during
# encryption:
$pass =~ s/\0*$//;
return $pass;
}
--
_+_ From the catapult of |If anyone disagrees with any statement I make, I
_|70|___:)=}- J.D. Baldwin |am quite prepared not only to retract it, but also
\ / baldwin@panix.com|to deny under oath that I ever made it. -T. Lehrer
***~~~~-----------------------------------------------------------------------
------------------------------
Date: Thu, 30 Nov 2006 01:02:45 +0000
From: Ben Morrow <benmorrow@tiscali.co.uk>
Subject: Re: Regex failed to replace utf8 character
Message-Id: <l6n144-2cs.ln1@osiris.mauzo.dyndns.org>
Quoth "Frank" <mccownf@yahoo.com>:
> Ben,
>
> > 1 while $html =~ s/$special / /g;
>
> This causes an infiinite loop. The substitution is simply not being
> made.
Are you *sure*? Either it should match, or not; even if it fails to
match, it shouldn't loop. Try replacing it with something like
print "replaced '$1'" while $html =~ s/$special / /g;
> I also tried replacing the copyright character © like so:
>
> my $copy = "\x{00a9}";
> if ($html =~ s|$copy|©|g) {
Don't use | as a delimiter for regexes: it's magic, so you will confuse
people (though not Perl :) ).
> print "REPLACED COPYRIGHT\n";
> }
>
> but no replacement was made.
>
> I also tried this:
>
> $copy = utf8::encode("©");
What did you hope to acheive by this? As a general rule, the only
functions you should use to deal with character sets are Encode::encode
and Encode::decode, and the corresponding :encoding PerlIO layer; encode
to convert characters into raw octets (suitable to be written to a
filehandle that has had binmode ':raw' applied to it), and decode to
convert back again. In particular, IMHO *all* the functions in the utf8
namespace should be regarded as perl-internal, and not for normal use.
> if ($html =~ s|$copy|©|g) {
> print "REPLACED COPYRIGHT\n";
> }
>
> and it changed the text
>
> id="copy1"> © 2005 Farmer
Is the A-circumflex I can see above actually present in your data, or is
it an artefact of Usenet, or of your terminal (what I see has
right-angle space A-circumflex copyright space two zero zero five
in the middle)?
> to
>
> id="copy1">©©©2005©Farmer
>
> Notice the © char is still present, but all the spaces were replaced.
> Very odd. I have a *lot* of experience with regex in Perl, and I've
> never seen this before. Unfortunately, I have very little experience
> with utf8 which I believe is at the core of this problem.
This is indeed odd. With both 5.8.8 and 5.8.0 (and a *lot* of utf8 bugs
were fixed in 5.8.1), and this script:
#!/usr/bin/perl -l
use warnings;
use strict;
use LWP::Simple qw/get/;
# This is because my terminal expects UTF8 output.
# The only difference it makes to the output is that without it the
# copyright symbol on the third line of output is displayed as an
# invalid character.
binmode \*STDOUT, ':encoding(utf8)';
$_ = get 'http://www.cs.odu.edu/~fmccown/buy-online.html';
my $copy = "\xa9";
/(> .* 2005)/x and print join ' ', map ord, split //, $1;
print "matches before s///" if /$copy/;
/> (.*? $copy .*?) </x and print $1;
print "replaced a copyright" while s/$copy/©/;
print "matches after s///" if /$copy/;
/> (.*? © .*?) </x and print $1;
__END__
I get
62 32 169 32 50 48 48 53
matches before s///
© 2005 Farmer India. All rights reserved.
replaced a copyright
© 2005 Farmer India. All rights reserved.
which is what I would have expected. How are you getting the data into
Perl? Perhaps you don't have what you think you have for some reason. If
you are using LWP, which version (I am using 5.803)? Can you try the
script above, and see what you get?
Ben
--
The Earth is degenerating these days. Bribery and corruption abound.
Children no longer mind their parents, every man wants to write a book,
and it is evident that the end of the world is fast approaching.
Assyrian stone tablet, c.2800 BC benmorrow@tiscali.co.uk
------------------------------
Date: 29 Nov 2006 15:16:02 -0800
From: "aswad" <clifton_francis@hotmail.com>
Subject: Re: using DateTime object
Message-Id: <1164842162.518534.45540@14g2000cws.googlegroups.com>
Sherm Pendley wrote:
> "aswad" <clifton_francis@hotmail.com> writes:
>
> > Sherm Pendley wrote:
> >> "aswad" <clifton_francis@hotmail.com> writes:
> >>
> >> > When I try this I get the following error: Can't
> >> > locate object method "new" via package "DateTime" (perhaps you forgot
> >> > to load "DateTime"?) at tt.pl line 17.
> >> >
> >> > Can someone tell me what I'm doing wrong. Here is my code. Thanks.
> >> >
> >> > use lib "C:\\Perl\\lib\\ActiveState";
> >> > my $dt1 = DateTime->new(year => 2002, month => 3, day => 1);
> >> > or
> >> > my $dt1 = DateTime->now();
> >>
> >> Looks to me like the error already told you precisely what's wrong - you
> >> forgot to use() the DateTime module.
> >>
> >> use DateTime;
> >
> > Sorry, i do have that statement. I though i had include that line.
>
> Are you saying that you didn't copy-and-paste your real code, as the group
> guidelines suggest you do? Why not? You *have* read the guidelines, haven't
> you?
>
> Anyway, the error message you included above is Perl is telling you that
> you didn't "use DateTime;" before calling its methods. You can think you
> included it all you wish - Perl is telling you that in fact you didn't.
>
> If your real code had actually included "use DateTime;", you would have had
> one of two results - neither of which would be the error message you reported.
>
> If you don't have the DateTime module installed, you would get a "couldn't
> locate DateTime.pm in @INC" error. If you *do* have DateTime installed, and
> your script included "use DateTime;", then you would not be getting the error
> message above.
>
> > use lib "C:\\Perl\\lib\\ActiveState";
>
> I told you before - you don't need "use lib".
>
> > use DateTime;
>
> You have installed the DateTime module, haven't you? It's not a core module,
> it needs to be installed separately. It also needs to be installed correctly.
> Since you're using ActiveState, the best way to install it would be through
> their PPM package manager:
>
> ppm install DateTime
>
> sherm--
>
> --
> Web Hosting by West Virginians, for West Virginians: http://wv-www.net
> Cocoa programming in Perl: http://camelbones.sourceforge.net
Hi Sherm, thanks for your response. First let me say that I new to Perl
so I not sure of the proper steps to take. First I downloaded and
install activeperl 5.8.8. When I searched for the DateTime.pm file it
was in the C:\Perl\lib\ActiveState directory. That is why I have that
path in the file. If I comment out the use lib line, I get the
following error.
Can't locate DateTime.pm in @INC (@INC contains: C:/Perl/site/lib
C:/Perl/lib .) at C:\Send
ail\TT.pl line 2.
BEGIN failed--compilation aborted at C:\SendMail\TT.pl line 2.
When I ran ppm, I got this error
C:\SendMail>ppm install DateTime
Downloading ActiveState Package Repository packlist...done
Updating ActiveState Package Repository database...done
Syncing site PPM database with .packlists...done
ppm install failed: Can't find any package that provide DateTime
------------------------------
Date: Thu, 30 Nov 2006 00:09:21 +0000
From: Ben Morrow <benmorrow@tiscali.co.uk>
Subject: Re: using DateTime object
Message-Id: <h2k144-ncc.ln1@osiris.mauzo.dyndns.org>
Quoth "aswad" <clifton_francis@hotmail.com>:
>
> Sherm Pendley wrote:
> > "aswad" <clifton_francis@hotmail.com> writes:
> > > Sherm Pendley wrote:
> > >>
> > >> Looks to me like the error already told you precisely what's wrong - you
> > >> forgot to use() the DateTime module.
> > >>
> > >> use DateTime;
> > >
> > > Sorry, i do have that statement. I though i had include that line.
> >
> > If your real code had actually included "use DateTime;", you would
> > have had one of two results - neither of which would be the error
> > message you reported.
>
> Hi Sherm, thanks for your response. First let me say that I new to Perl
> so I not sure of the proper steps to take. First I downloaded and
> install activeperl 5.8.8. When I searched for the DateTime.pm file it
> was in the C:\Perl\lib\ActiveState directory. That is why I have that
> path in the file.
That module is not DateTime, it is ActiveState::DateTime, which is why
it is in the ActiveState directory.
> If I comment out the use lib line, I get the
> following error.
>
> Can't locate DateTime.pm in @INC (@INC contains: C:/Perl/site/lib
> C:/Perl/lib .) at C:\Send
> ail\TT.pl line 2.
> BEGIN failed--compilation aborted at C:\SendMail\TT.pl line 2.
Because you don't have it installed.
> When I ran ppm, I got this error
>
> C:\SendMail>ppm install DateTime
> Downloading ActiveState Package Repository packlist...done
> Updating ActiveState Package Repository database...done
> Syncing site PPM database with .packlists...done
> ppm install failed: Can't find any package that provide DateTime
Then install it using CPAN.pm, in the usual way:
perl -MCPAN -e"install DateTime"
You will need to download a copy of nmake and put it somewhere on your
PATH if you don't have one already: you can download nmake from
http://download.microsoft.com/download/vc15/patch/1.52/w95/en-us/nmake15.exe
, and it's probably easiest just to copy it into your c:\perl\bin
directory.
Ben
--
Joy and Woe are woven fine,
A Clothing for the Soul divine William Blake
Under every grief and pine 'Auguries of Innocence'
Runs a joy with silken twine. benmorrow@tiscali.co.uk
------------------------------
Date: Thu, 30 Nov 2006 02:28:21 +0000
From: Ben Morrow <benmorrow@tiscali.co.uk>
Subject: Re: using DateTime object
Message-Id: <57s144-rjg.ln1@osiris.mauzo.dyndns.org>
Quoth Ben Morrow <benmorrow@tiscali.co.uk>:
>
> Then install it using CPAN.pm, in the usual way:
>
> perl -MCPAN -e"install DateTime"
I meant
perl -MCPAN -e"install 'DateTime'"
(with the quotes) of course. I always get tha wrong :(. I do apologise.
Ben
--
Joy and Woe are woven fine,
A Clothing for the Soul divine William Blake
Under every grief and pine 'Auguries of Innocence'
Runs a joy with silken twine. benmorrow@tiscali.co.uk
------------------------------
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 10021
****************************************