Dr.Ruud wrote:
Gunnar Hjalmarsson wrote:
Dr.Ruud wrote:
Gunnar Hjalmarsson wrote:
eval { $ssh2->connect($_) };
    if ($@) {
        warn "Unable to connect host $_: $@" and next;
    }

That is the "old fashioned" way. You really need to use the return value of eval to make sure.

I don't see anything about that in "perldoc -f eval". Instead it says:

"If there is a syntax error or runtime error, or a die statement is executed, an undefined value is returned by eval, and $@ is set to the error message. If there was no error, $@ is guaranteed to be a null string."

This has been discussed many times before.

In that case, why haven't the docs been changed accordingly? (rhetorical question)

The best known example is a DESTROY with a die-ing eval, happening at leaving the eval bock scope. Since you don't have control over that, you should always check the result of the eval itself.

Ok, thanks.

--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to