Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^3: Help with vague Carp error message

by tobyink (Abbot)
on Sep 28, 2012 at 13:06 UTC ( #996209=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Help with vague Carp error message
in thread Help with vague Carp error message

You might have 1.26 installed somewhere, but I believe Perl is finding and using an older version. The longmess_real and shortmess_real subs were purged a few years ago, in the 1.1x series IIRC.

Basically the way they were defined/used was that the (long|short)mess_real functions were defined inside Carp/Heavy.pm, and were called from Carp.pm itself. In recent versions Carp/Heavy.pm is not much more than an empty file, and Carp.pm doesn't call (long|short)mess_real at all.

So what I'm assuming is that Perl is finding an old version of Carp.pm (which calls longmess_real) but a new version of Carp/Heavy.pm (which does not define longmess_real).

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'


Comment on Re^3: Help with vague Carp error message
Select or Download Code
Replies are listed 'Best First'.
Re^4: Help with vague Carp error message
by neilwatson (Curate) on Sep 29, 2012 at 00:34 UTC
    Yep, you are right. I change my BEGIN block to use unshift to make my custom libs load first.
    BEGIN { unshift @INC, "/home/neil/perl5/lib/perl5" }

    Neil Watson
    watson-wilson.ca

      use lib '/it/unshifts/for/you';

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://996209]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (11)
As of 2015-07-07 19:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (93 votes), past polls