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

Carp v1.26

Neil Watson
watson-wilson.ca

  • Comment on Re^2: Help with vague Carp error message

Replies are listed 'Best First'.
Re^3: Help with vague Carp error message
by tobyink (Canon) on Sep 28, 2012 at 13:06 UTC

    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'
      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';