Error Handling and Defensive Perl
Guarded Operation
Check a divisor before calculating.
Guarded Operation
guarded_operation.pl
use strict;
use warnings;
my $denominator = ;
my $status;
my $result;
if ($denominator == 0) {
$status = "blocked";
$result = "n/a";
} else {
$status = "ok";
$result = 20 / $denominator;
}
print "denominator=$denominator\n";
print "status=$status\n";
print "result=$result\n";
use strict;
use warnings;
my $denominator = ;
my $status;
my $result;
if ($denominator == 0) {
$status = "blocked";
$result = "n/a";
} else {
$status = "ok";
$result = 20 / $denominator;
}
print "denominator=$denominator\n";
print "status=$status\n";
print "result=$result\n";
use strict;
use warnings;
my $denominator = ;
my $status;
my $result;
if ($denominator == 0) {
$status = "blocked";
$result = "n/a";
} else {
$status = "ok";
$result = 20 / $denominator;
}
print "denominator=$denominator\n";
print "status=$status\n";
print "result=$result\n";
guarded-operation
A guard branch can turn a risky calculation into a clear status.