Difference between revisions of "Perl eval"
From Teknologisk videncenter
m |
m (→Example) |
||
(One intermediate revision by the same user not shown) | |||
Line 23: | Line 23: | ||
} | } | ||
</source> | </source> | ||
+ | =Example= | ||
+ | <source lang=perl> | ||
+ | #!/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; | ||
+ | } | ||
+ | </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 13: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.