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 packagers have decided that they don’t need to install the whole standard Perl distribution as part of their standard installation. I don’t have a problem with that. I do have a problem with their naming conventions.
The minimal Perl installation that they include by default is in an RPM called “perl”. The full RPM that includes everything that a Perl developer would expect to see is called “perl-core”. Surely it’s obvious that those names are the wrong way round?
Isn’t there some way that the Perl 5 Porters can object toย this renaming of Perl?
I know I should be installing my own Perl with perlbrew. But I generally find that the system Perl works for everything that I need. There’s just this one thing that is guaranteed to trip me up every time I work on a new Fedora installation.
This is a public service blog post. Perhaps someone will come across it and be saved a couple of hours of confusion.
Leave a Reply