http://www.perlmonks.org?node_id=666625


in reply to Re^2: What Just Happened to my CPAN Shell?
in thread What Just Happened to my CPAN Shell?

Latest (the fixed one) Safe is 2.15 (should hit your favourite CPAN mirror soon).

-- Frank

  • Comment on Re^3: What Just Happened to my CPAN Shell?

Replies are listed 'Best First'.
Re^4: What Just Happened to my CPAN Shell?
by eskwayrd (Acolyte) on Feb 06, 2008 at 17:54 UTC
    I can report that after upgrade to Safe 2.15 that the problem still exists.
      I can report that after upgrade to Safe 2.15 that the problem still exists.

      Nice. Your perl is 5.8.8? Could you please try the following test script?

      use warnings; use strict; use Safe; use version; my $comp = Safe->new; # never using it! my $code = <<'EOT'; use version; qv('3.0.17'); EOT my $ret = eval($code); print "$ret"; # should stringify the version

      On my system with Safe 2.14 the script produces a SEGV:

      $ perl test.pl Use of inherited AUTOLOAD for non-method version::(""() is deprecated +at test.pl line 13. Segmentation fault

      But with Safe 2.15 it runs fine.

      -- Frank

        Yes, my perl is 5.8.8:
        $ perl -v This is perl, v5.8.8 built for x86_64-linux-gnu-thread-multi [...snip...]
        The test script segfaults as per your example. However:
        $ perl -MSafe -e 'print $Safe::VERSION, "\n"' 2.14
        I now have two Safe.pm's:

        2.14 is in /usr/local/lib/perl/5.8.8/Safe.pm
        2.15 is in /usr/lib/perl/5.8.8/Safe.pm

        @INC is:
        $ perl -MData::Dumper -e 'print Dumper(\@INC);' $VAR1 = [ '/etc/perl', '/usr/local/lib/perl/5.8.8', '/usr/local/share/perl/5.8.8', '/usr/lib/perl5', '/usr/share/perl5', '/usr/lib/perl/5.8', '/usr/share/perl/5.8', '/usr/local/lib/site_perl', '.' ];
        I'm not sure why there is a discrepancy (no difference in Makefile.PL between the two versions), although I installed 2.14 via the CPAN shell, and 2.15 via bash.

        When I upgrade the test script to 'use lib qw(/usr/lib/perl)' before 'use Safe', it does not segfault and emits:
        $ perl test.pl 3.0.17