有没有人有更好(更短)的方式在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 @_}
_ [丹楼](http://stackoverflow.com/users/718269/dan-f)_:请使用适合公共论坛的文字。我已经替换了这个词。 – 2011-04-21 04:53:56