Files and Safe IO
Open Error Path
Safe IO code should handle the path where input is not available.
error path
An error path records what happened when the normal path cannot continue.
Open Error Path
open_error_path.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;
my $available = 1;
my $content = "ready\n";
my $message;
if ($available) {
$message = $content;
chomp $message;
} else {
$message = "not available";
}
print "available=$available\n";
print "message=$message\n";
use strict;
use warnings;
my $available = 0;
my $content = "ready\n";
my $message;
if ($available) {
$message = $content;
chomp $message;
} else {
$message = "not available";
}
print "available=$available\n";
print "message=$message\n";
$available ← 1, $content ← ready , $message ← (empty)
4my $available→ 1 = 1; #@available=05my $content→ ready = "ready\n";6my $message→ (empty);$message ← ready
8if ($available1) {9 $message→ ready = $contentready ;10 chomp $message→ ready;11} else {print "available=$available ";
15print "available=$available1\n";16print "message=$messageready\n";outputavailable=1 message=ready
$available ← 0, $content ← ready , $message ← (empty)
4my $available→ 0 = 0;5my $content→ ready = "ready\n";6my $message→ (empty);$message ← not available
10 chomp $message;11} else {12 $message→ not available = "not available";13}print "available=$available ";
15print "available=$available0\n";16print "message=$messagenot available\n";outputavailable=0 message=not available