Error Handling and Defensive Perl
Or Fallback
Use a fallback string when input is empty.
or-fallback
The `||` operator can choose a default value for empty input.
Or Fallback
or_fallback.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;
my $name = "";
my $display = $name || "guest";
my $label = "user:$display";
print "name=$display\n";
print "label=$label\n";
use strict;
use warnings;
my $name = "Ada";
my $display = $name || "guest";
my $label = "user:$display";
print "name=$display\n";
print "label=$label\n";
use strict;
use warnings;
my $name = "Kai";
my $display = $name || "guest";
my $label = "user:$display";
print "name=$display\n";
print "label=$label\n";
$name ← (empty), $display ← guest, $label ← user:guest
4my $name→ (empty) = ""; #@name="Ada", "Kai"5my $display→ guest = $name(empty) || "guest";6my $label→ user:guest = "user:$displayguest";78print "name=$displayguest\n";9print "label=$labeluser:guest\n";outputname=guest label=user:guest
$name ← Ada, $display ← Ada, $label ← user:Ada
4my $name→ Ada = "Ada";5my $display→ Ada = $nameAda || "guest";6my $label→ user:Ada = "user:$displayAda";78print "name=$displayAda\n";9print "label=$labeluser:Ada\n";outputname=Ada label=user:Ada
$name ← Kai, $display ← Kai, $label ← user:Kai
4my $name→ Kai = "Kai";5my $display→ Kai = $nameKai || "guest";6my $label→ user:Kai = "user:$displayKai";78print "name=$displayKai\n";9print "label=$labeluser:Kai\n";outputname=Kai label=user:Kai