3

Perl 中有没有办法直接知道 if 语句中的哪个测试匹配?

例如,以下代码将打印 $a:

my $a = 0;
my $b = 1;
if ($a == 0 or $b == 0)
{
    print $XXX ."\n";
}

有这样的 $XXX 变量吗?
或者这样做的唯一方法是一次过滤每个:

my $a = 0;
my $b = 1;
if ($a == 0)
{
    print $a ."\n";
}
elsif ($b == 0)
{
    print $b ."\n";
}
4

1 回答 1

4

没有内置的,但你可以这样做:

my $which;
if (($a eq 0 && $which = '$a') or ($b eq 0 && $which = '$b')) {
  print $which, "\n";
}
于 2013-06-03T15:14:34.740 回答