Matteo
Matteo

Reputation: 14930

Perlbrew list and wrong version number

I installed two version of Perl using --as (naming the version with the major number only)

This is the output of perlbrew list

* 5.20 (5.20.0)
  5.20t (5.20.0)

I then upgraded Perl to 5.20.1 using

$ perlbrew upgrade-perl
Upgrading 5.20 to 5.20.1
Installing /Users/corti/perl5/perlbrew/build/perl-5.20.1 into ~/perl5/perlbrew/perls/5.20

This could take a while. You can run the following command on another shell to track the status:

  tail -f ~/perl5/perlbrew/build.perl-5.20.1.log

5.20 is successfully installed.

Perl seems to be correctly upgraded (v5.20.1):

$ perl -version

This is perl 5, version 20, subversion 1 (v5.20.1) built for darwin-2level

Copyright 1987-2014, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

But perlbrew list does not recognise the new version and calling perlbrew upgrade-perl does the upgrade again

$ perlbrew list
* 5.20 (5.20.0)
  5.20t (5.20.0)

Why does perlbrew not recognise the update?

Upvotes: 5

Views: 873

Answers (1)

Jonathan
Jonathan

Reputation: 343

Because perlbrew checks for the existence of a file called

perls/*/.version

and uses its contents to determine which version of Perl is installed. If it doesn't find the file, it falls back to running the perl executable

perls/*/bin/perl

to determine the installed version and the creates the .version file.

The upgrade-perl command fails to update the file, so subsequent runs don't properly detect the installed version. I have filed a bug report

Upvotes: 2

Related Questions