Skip to content

Instantly share code, notes, and snippets.

@melo
Created January 6, 2011 13:03
Show Gist options
  • Save melo/767856 to your computer and use it in GitHub Desktop.
Save melo/767856 to your computer and use it in GitHub Desktop.
strange problem with confess()
#
# Edited Class::MOP to this, around line 120:
catch {
unless (/^Can't locate \Q$file\E in \@INC/) {
# uncomment next line to temporarily work-around the problem
# s/ at / AT /gsm;
print "\n\n-------\n$_\n\n---------\n\n";
confess "Couldn't load class ($name) because: $_";
}
#
# Basically we print the original error message before handing it out to confess.
# We also leave a commented s/// that works around the problem for me.
# On this particular case we get this:
#
-------
Invalid version format (non-numeric data) at /Users/melo/Documents/work/evolui/e5/dev/bin/../../sites/gestao.evolui.com/lib/E5/Sites/Gestao/Controller/Catalogo/Catalogos.pm line 3, near "package E5::Sites::Gestao::Controller::Catalogo::Catalogos
"
syntax error at /Users/melo/Documents/work/evolui/e5/dev/bin/../../sites/gestao.evolui.com/lib/E5/Sites/Gestao/Controller/Catalogo/Catalogos.pm line 3, near "package E5::Sites::Gestao::Controller::Catalogo::Catalogos
use E5::Moose"
Compilation failed in require at /Users/melo/.perl5/current/local/lib/perl5/Catalyst/Utils.pm line 287.
Compilation failed in require at /Users/melo/.perl5/current/local/lib/perl5/darwin-2level/Class/MOP.pm line 114.
---------
[FATAL]: Could not load 'E5::Sites::Gestao': Couldn't load class (E5::Sites::Gestao) because: Invalid version format (non-numeric data) at /Users/melo/.perl5/current/local/lib/perl5/darwin-2level/Class/MOP.pm line 123
Class::MOP::__ANON__('Invalid version format (non-numeric data) at /Users/melo/Docu...') called at /Users/melo/.perl5/current/local/lib/perl5/Try/Tiny.pm line 100
Try::Tiny::try('CODE(0xbc7630)', 'Try::Tiny::Catch=REF(0x2065f60)') called at /Users/melo/.perl5/current/local/lib/perl5/darwin-2level/Class/MOP.pm line 127
Class::MOP::load_first_existing_class('E5::Sites::Gestao') called at /Users/melo/.perl5/current/local/lib/perl5/darwin-2level/Class/MOP.pm line 139
Class::MOP::load_class('E5::Sites::Gestao') called at /Users/melo/work/evolui/e5/dev/bin/e5-dev-server line 115
eval {...} called at /Users/melo/work/evolui/e5/dev/bin/e5-dev-server line 115
<dev_server:117>
#
# The error is a missing ; after the package Class, and before the following use.
# And the original error in $_ clearly shows the package name, filename and line number
# but when we get to the confess(), we loose everything except the first line it seems.
#
# Still not sure where the problem is but it seems to be inside confess(), because if
# we uncomment the s/// in Class::MOP, we get:
#
-------
Invalid version format (non-numeric data) AT /Users/melo/Documents/work/evolui/e5/dev/bin/../../sites/gestao.evolui.com/lib/E5/Sites/Gestao/Controller/Catalogo/Catalogos.pm line 3, near "package E5::Sites::Gestao::Controller::Catalogo::Catalogos
"
syntax error AT /Users/melo/Documents/work/evolui/e5/dev/bin/../../sites/gestao.evolui.com/lib/E5/Sites/Gestao/Controller/Catalogo/Catalogos.pm line 3, near "package E5::Sites::Gestao::Controller::Catalogo::Catalogos
use E5::Moose"
Compilation failed in require AT /Users/melo/.perl5/current/local/lib/perl5/Catalyst/Utils.pm line 287.
Compilation failed in require AT /Users/melo/.perl5/current/local/lib/perl5/darwin-2level/Class/MOP.pm line 114.
---------
[FATAL]: Could not load 'E5::Sites::Gestao': Couldn't load class (E5::Sites::Gestao) because: Invalid version format (non-numeric data) AT /Users/melo/Documents/work/evolui/e5/dev/bin/../../sites/gestao.evolui.com/lib/E5/Sites/Gestao/Controller/Catalogo/Catalogos.pm line 3, near "package E5::Sites::Gestao::Controller::Catalogo::Catalogos
"
syntax error AT /Users/melo/Documents/work/evolui/e5/dev/bin/../../sites/gestao.evolui.com/lib/E5/Sites/Gestao/Controller/Catalogo/Catalogos.pm line 3, near "package E5::Sites::Gestao::Controller::Catalogo::Catalogos
use E5::Moose"
Compilation failed in require AT /Users/melo/.perl5/current/local/lib/perl5/Catalyst/Utils.pm line 287.
Compilation failed in require AT /Users/melo/.perl5/current/local/lib/perl5/darwin-2level/Class/MOP.pm line 114.
at /Users/melo/.perl5/current/local/lib/perl5/darwin-2level/Class/MOP.pm line 123
Class::MOP::__ANON__('Invalid version format (non-numeric data) AT /Users/melo/Docu...') called at /Users/melo/.perl5/current/local/lib/perl5/Try/Tiny.pm line 100
Try::Tiny::try('CODE(0xbc7460)', 'Try::Tiny::Catch=REF(0x2066c90)') called at /Users/melo/.perl5/current/local/lib/perl5/darwin-2level/Class/MOP.pm line 127
Class::MOP::load_first_existing_class('E5::Sites::Gestao') called at /Users/melo/.perl5/current/local/lib/perl5/darwin-2level/Class/MOP.pm line 139
Class::MOP::load_class('E5::Sites::Gestao') called at /Users/melo/work/evolui/e5/dev/bin/e5-dev-server line 115
eval {...} called at /Users/melo/work/evolui/e5/dev/bin/e5-dev-server line 115
<dev_server:117>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment