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

Nilson Santos Figueiredo Jr. acid06 em gmail.com
Segunda Agosto 10 13:30:07 PDT 2009


2009/8/10 Donato Azevedo <donatoaz at gmail.com>:
> 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?

Um eval {} vai pegar qualquer exceção jogada de dentro do módulo.

Porém, alguns módulos que possuem código XS "morrem" de uma maneira
não padrão e aí não tem jeito mesmo. Exemplos que eu já enfrentei em
que isso aconteceu: o ImageMagick e o módulo de integração com o
OpenOffice.

-Nilson Santos F. Jr.


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