Question

I'm trying to understand the following piece of code:

sub foo {
    ...
    if ( $@ ) {
        ...
        die $@;
    }
}
Was it helpful?

Solution

perldoc -f eval:

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.

See also perldoc perlvar.

OTHER TIPS

$@ is a magic variable containing the error message of the last eval command, if any.

The if loop should be preceded by eval for it to be able to trap $@.

During an eval(), $@ is always set on failure and cleared on success.

In case whr code inside eval() did not compile, $@ is set to the compilation error.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top