Difference between revisions of "Perl eval"

From Teknologisk videncenter
Jump to: navigation, search
m (Throwing an exception)
m (Example)
 
Line 40: Line 40:
 
}
 
}
 
</source>
 
</source>
 +
Yields
 +
<pre>
 +
 +
Help - I'm dying
 +
    Perl Script.: C:\Programmer\Perl Express\Debug\temp6.cgi
 +
    Perl verson.: 5.010001
 +
    Error #.....: Illegal division by zero at C:\Programmer\Perl Express\Debug\temp6.cgi line 5.
 +
</pre>

Latest revision as of 12:40, 27 June 2010

Perl eval can be used as try and catch exception handling.

eval
{
    # try
};
if($@)
{
    # catch
}

Throwing an exception

eval
{
    # try
    die "Exception text to be catched";
};
if($@)
{
    # catch
}

Example

#!/usr/bin/perl

eval
{
    my $res = 1/0;
};
if($@)
{
 print("Help - I'm dying\n");
 print("    Perl Script.: $0\n");
 print("    Perl verson.: $]\n");
 print("    Error #.....: ",$@,"\n");
 exit;
}

Yields


Help - I'm dying
    Perl Script.: C:\Programmer\Perl Express\Debug\temp6.cgi
    Perl verson.: 5.010001
    Error #.....: Illegal division by zero at C:\Programmer\Perl Express\Debug\temp6.cgi line 5.