Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Help with vague Carp error message

by neilwatson (Priest)
on Sep 28, 2012 at 02:08 UTC ( #996097=perlquestion: print w/replies, xml ) Need Help??
neilwatson has asked for the wisdom of the Perl Monks concerning the following question:

I'm getting this error message that is to vague for me to follow.
Goto undefined subroutine &Carp::longmess_real at /usr/share/perl5/Car line 35, <FH> line 1.
My code base is large. I'll list the beginning parts since I think that might be the problem. First
#!/usr/bin/perl BEGIN { push @INC, "/home/neil/perl5/lib/perl5" } use strict; use warnings; use local::lib; use Evolvethinking::Mymodule; use POSIX 'strftime';
And the module.
package Mymodule; { use Mouse; use Mouse::Util::TypeConstraints; use Socket; ... subtype 'my_timestamp', => as 'Str', => where { m/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/ }, => message { 'Not a valid timestamp. Expect: yyyy-mm-d +d hh:mm' }; has 'timestamp' => ( is => 'ro', isa => 'my_timestamp' );


Carp::Any shows that my typing is working properly by returning an error. However, I wonder why the error was so vague.
Attribute (insert_class) does not pass the type constraint because: No +t a valid class at /home/neil/perl5/lib/perl5/x86_64-linux-thread-mul +ti/Mouse/ line 383, <FH> line 1. Mouse::Util::throw_error('Mouse::Meta::Attribute=HASH(0x161869 +8)', 'Attribute (insert_class) does not pass the type constraint be.. +.', 'data', '192_168_0_151', 'depth', -1) called at /home/neil/perl5/ +lib/perl5/x86_64-linux-thread-multi/Mouse/ line 383, <FH> line + 1. Mouse::Util::throw_error('Mouse::Meta::Attribute=HASH(0x161869 +8)', 'Attribute (insert_class) does not pass the type constraint be.. +.', 'data', '192_168_0_151', 'depth', -1) called at ./ line 35 .... subtype 'my_insert_class', => as 'Str', => where { m/^[a-zA-Z0-9]+$/ }, => message { '$_ is not a valid class' }; has 'insert_class' => ( is => 'rw', isa => 'my_insert_class' );
Also, is there a way to have this typing do something other than exit? I'd really like to to just return none zero.

Neil Watson

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

    What version of Carp do you have installed? If I recall correctly, Moose needs a fairly recent version but until recently didn't indicate so properly.

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

        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/, and were called from itself. In recent versions Carp/ is not much more than an empty file, and doesn't call (long|short)mess_real at all.

        So what I'm assuming is that Perl is finding an old version of (which calls longmess_real) but a new version of Carp/ (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'
Re: Help with vague Carp error message
by Anonymous Monk on Sep 28, 2012 at 02:25 UTC

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://996097]
Approved by GrandFather
[markong]: " Perl: the Markov chain saw" :D aha
[Discipulus]: thanks 1nickt but seems i'm not able to use it correctly...
[Discipulus]: Eily i'm testing a failure: i ok if i get bad results.. perhaps there is another way to do it...
[Discipulus]: in other words: i have a contructor that carps on missing arguments and I want to test that it fails correctly, without carping out in the test output

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (7)
As of 2018-01-22 11:31 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (233 votes). Check out past polls.