use strict; use warnings; sub test1 #An if/else implementation.... { my ($var1) = @_; # $var1 = shift; # is slightly faster with one var # my ($var1, $var2) = @_; # slightly faster than than 2 shifts # normally this minor difference doesn't matter. # Perl can implement the if/else idea very code efficiently. return ("One") if ($var1 == 1); return ("Two") if ($var1 == 2); return ("Three") if ($var1 == 3); return undef; } #Using a hash table #Perl will not re-evaluate %hash for every entry into the sub #that table will "still be around to use". sub test2 { my $in = shift; my %hash = ( 1 => "One", 2 => "Two", 3 => "Three", ); return ($hash{$in}) if exists ($hash{$in}); return undef; }