> elsif ( defined $@ ) { Dica: é melhor não testar para "definideness", pois $@ é sempre definido depois de um eval: #!/usr/bin/perl eval { # nao faz nada }; if ( defined $@ ) { print "\$@ definido com o valor '$@'\n"; } (Eu sei porque já fui mordido por isso antes :-P)