[Rio-pm] die dentro de módulo mata execução mesmo dentro de eval?

jimmy jimmy.tty em gmail.com
Segunda Agosto 10 13:21:06 PDT 2009


On Mon, Aug 10, 2009 at 04:47:25PM -0300, Donato Azevedo wrote:
> Pessoal,
> 
> Eu estou tentando pegar um die dentro de uma função de um módulo que
> estou usando (CAM::PDF) com um eval
> 
> unless ( eval { $obj->doStuff } ) { print "Uh oh!"; next }
> 
> mas o script tá morrendo mesmo! não executa o bloco do unless.
> Pelo que eu li, o die dentro do eval faz o eval retornar undef e setar
> $@ com o texto do die... onde estou errando?
> 
> -- 
> Donato Azevedo
> _______________________________________________

você mencionou o die() porém ele não apareceu no seu código,
fiz um programa exemplo:

use strict;
use warnings;
unless ( eval { die((qq(morri!))) } ) {
    print "Uh oh!\n";
}
print($@,qq(\n));

e ao executar:

$ perl /tmp/perl.pl
Uh oh!
morri! at /tmp/perl.pl line 5.

realizando exatamente o que você descreveu,
tem certeza que é essa parte do código que está a tirar seu sono?



-- 
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------


Mais detalhes sobre a lista de discussão Rio-pm