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.
As a Fedora Perl user, you’re right, the naming scheme is wack. I think the problem comes from the use of the word “core”. This term has special significance in the upstream project. Otherwise, speaking strictly from a packaging perspective, you’d think it would indicate “perl-minimal” or something, like the way Vim is split up.