Please run the following command to find out where the Scalar/Util.pm is being loaded from, and if the corresponding Util.so is found:

$ PERL_CORE=1 tusc ./perl ext/Storable/t/weak.t | grep Util

This must be run from the main build directory, where the perl binary is located.

The normal output from this - with a fully functioning Scalar::Util - would look like this:

stat64("./Scalar/Util.pmc", 0x7fffdf30) ............. ... ERR#2 ENOENT stat64("./Scalar/Util.pm", 0x7fffdeb0) .............. ... ERR#2 ENOENT stat64("../lib/Scalar/Util.pmc", 0x7fffdf30) ........ ... ERR#2 ENOENT stat64("../lib/Scalar/Util.pm", 0x7fffdeb0) ......... ... = 0 open("../lib/Scalar/Util.pm", O_RDONLY|0x800, 0666) . ... = 4 stat64("./List/Util.pmc", 0x7fffdf30) ............... ... ERR#2 ENOENT stat64("./List/Util.pm", 0x7fffdeb0) ................ ... ERR#2 ENOENT stat64("../lib/List/Util.pmc", 0x7fffdf30) .......... ... ERR#2 ENOENT stat64("../lib/List/Util.pm", 0x7fffdeb0) ........... ... = 0 open("../lib/List/Util.pm", O_RDONLY|0x800, 0666) ... ... = 4 stat64("../lib/auto/List/Util/Util.so", 0x40011090) . ... = 0 stat64("../lib/auto/List/Util/Util.bs", 0x40011090) . ... = 0 open("../lib/auto/List/Util/Util.so", O_RDONLY, 0) .. ... = 4 open("../lib/auto/List/Util/Util.so", O_RDONLY, 0) .. ... = 4

In case you don't get any output, make sure you can run the test itself (without tusc), i.e.

$ PERL_CORE=1 ./perl ext/Storable/t/weak.t

Alternatively, you could try to just load the module Scalar::Util and import weaken (output should be similar to above):

$ tusc ./perl -I./lib -MScalar::Util=weaken -e1 | grep Util

And if you find that you do have a Util.so, you might want to check whether it has been compiled properly (contains the required symbols):

$ nm ./lib/auto/List/Util/Util.so | grep weak + [77] | 0| 0|FUNC |GLOB |0| UNDEF|Perl_sv_rvweak +en [102] | 67145504| 384|FUNC |GLOB |0| .text|XS_Scalar__Uti +l_isweak [66] | 67145184| 288|FUNC |GLOB |0| .text|XS_Scalar__Uti +l_weaken

Also (just in case) you could check for other perls:

$ find /opt/perl* -path "*bin/perl" $ find /opt/perl* -path "*bin/perl" -exec {} -v \; | grep 'is perl'

...because at least the code from Perl's Configure, which populates @inc_version_list, apparently did find directories for versions from 5.8.0 all through to 5.8.7.  This doesn't necessarily mean that all those are full installations, but it's at least a hint that there are - or have been - other versions of Perl on that machine, which might interfere under some circumstances (like PERL5LIB being set)...


In reply to Re^3: Perl Debug Build by almut
in thread Perl Debug Build by almond

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.