Есть ли у кого-нибудь лучший (более короткий) способ написания следующей логики на Perl?
Кажется немного громоздким, как сейчас ... И я не хочу передавать какие-либо избыточные переменные в одну из подпрограмм ...
#!perl
use Data::Dumper;
my $var = "ok";
my $bar = 1;
my ($a, $b, $c) = (1,2,3);
if ($var eq "ok") {
if (defined $bar) {
foo1($bar, $a);
}
else {
foo1($a);
}
}
elsif ($var eq "not_ok") {
if (defined $bar) {
foo2($bar, $a, $b);
}
else {
foo2($a, $b);
}
}
else {
if (defined $bar) {
foo3($bar, $a, $b, $c);
}
else {
foo3($a, $b, $c);
}
}
sub foo1 {print Dumper @_}
sub foo2 {print Dumper @_}
sub foo3 {print Dumper @_}