Created
January 6, 2011 13:03
-
-
Save melo/767856 to your computer and use it in GitHub Desktop.
strange problem with confess()
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# 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