I’ve written before about Linux Format’s habit of sharing badly written Perl code. I thought things were improving, but in the new edition (November 2012, issue 163) they’re back to their old tricks. This time it’s a tutorial called “Starfield: Learn new languages”. In this tutorial Mike Saunders writes similar starfield simulation code in C, […]
Category: Programming
A Cautionary Tale
I can never remember exactly how Time::Piece works. But that’s ok because I have documentation.
1 2 |
$ perldoc Time::Piece No documentation found for "Time::Piece". |
Huh?
1 2 3 4 5 6 7 8 9 10 |
$perl -v This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-thread-multi ... $ corelist Time::Piece Time::Piece was first released with perl v5.9.5 $ perl -MTime::Piece -E'say $Time::Piece::VERSION' Can't locate Time/Piece.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .). BEGIN failed--compilation aborted. |
So Time::Piece has been in the Perl core since 5.9.5. I’m running Perl 5.14.2 but I don’t have Time::Piece installed. After ten minutes or so of head-scratching it came to me.
1 2 3 4 5 |
$ sudo yum install perl-core Loaded plugins: langpacks, local, presto, refresh-packagekit [ stuff snipped ] ---> Package perl-Time-Piece.x86_64 0:1.20.1-212.fc17 will be installed [ more stuff snipped] |
I’m running Fedora. The Fedora […]
CGI.pm vs Templates
I’ve just been involved in a discussion on LinkedIn that I thought deserved a wider audience (I have no idea how well that link works if you’re not a member or or logged in to LinkedIn). A couple of days ago, someone asked for advice on the best way to include HTML in a Perl […]
What is Modern Perl?
I wrote an article for Josette called “What is Modern Perl?” In it, I talk about the different things that people might mean when they talk about Modern Perl and why it’s well worth buying a copy of the new edition of the camel book. After a gap of twelve years, a new edition of […]
How Well Can You Read Documentation?
(I was going to call this post “How well do you understand context?” but I think this title is more accurate). I just saw someone recommending this code:
1 |
$reversed = reverse(split //, $string); |
Looks sensible enough, doesn’t it? But it isn’t. What’s the hidden inefficiency?