[SP-pm] Catalyst: bug a reportar ou comportamento esperado ?

Wallace Reis wallace at reis.org.br
Tue Jul 6 10:38:07 PDT 2010


On 05/07/2010, at 22:12, Giuliani Sanches wrote:
> Boa noite,
> 
> Antes de pensar em reportar um bug, "prigunto":
> (...)
> Couldn't load class (Foo) because: Not a HASH reference at
> /home/khaoz/perl5/lib/perl5/Catalyst.pm line 2500.
> 
> Sinceramente, só descobri que o problema era as duas entradas ali por
> acaso, por que resolvi dar uma olhadinha no .conf.


Olá Giuliani,

Você esqueceu de especificar a versão do Catalyst que você está usando, mas
eu dei uma olhada nas três últimas que estão no cpan em torno da linha nº. 2500
- como especificado na mensagem de erro - e todas remetem ao método /setup_component/.
Eu suponho que a linha do código seja:

	local $config->{catalyst_component_name} = $component;

e um pouco antes na linha 2495 é definida a var $config:

	my $suffix = Catalyst::Utils::class2classsuffix( $component );
	my $config = $class->config->{ $suffix } || {};

baseado nisto, se você der uma lida rápida *apenas* no código deste método você provavelmente
poderá inferir que o Catalyst está alterando a chave /catalyst_component_name/ localmente na
configuração do componente atual que está em $component. Me parece que você usa local::lib[1]
no teu ambiente de trabalho, então você poderia editar o código do Catalyst e imprimir pra
STDOUT (ou até STDERR) o nome do componente e daí revisar a configuração do mesmo. Mesmo se
você achar trabalhoso isto (pra mim é normal abrir o código de um módulo e dar dump de alguma
coisa que eu quero), você já tem um suspeito que é a configuração de -algum- dos seus componentes.
Se você tem alguma idéia de como tornar este processo mais simples através de mensagens de aviso
ao usuário, por favor, submeta um /patch/ à lista de discussão do Catalyst[2] ou acesse o canal
#catalyst-dev em irc.perl.org e poste o link para o lugar que você tenha colado o /patch/ em algum
serviço web. Se você não conhece, fica a dica da ferramenta nopaste da distribuição App::Nopaste[3]
que facilita você colar código nos principais serviços web.

[1] http://search.cpan.org/perldoc?local::lib
[2] http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
[3] http://search.cpan.org/perldoc?App::Nopaste

--
   wallace reis/wreis  http://www.linkedin.com/in/wallacereis


More information about the SaoPaulo-pm mailing list