I have a Perl script which I cannot understand.
for $i(@myarr)
{
#some stuff
eval {
#some stuff
};
if($@)
{
print \"*** $
$@
The Perl syntax error or routine error message from the last eval, do-FILE, or require command. If set, either the compilation failed, or the die function was executed within the code of the eval. please read this doc http://perldoc.perl.org/perlvar.html
To add to Suic’s answer, see the English module that lets you use more descriptive $EVAL_ERROR
instead of $@
and the Try::Tiny or TryCatch modules that avoid common traps associated with using eval
for exception handling. Also, the next time you wonder about a Perl function, perldoc -f
is your friend (like perldoc -f eval
).