3

Perl で if ステートメントのどのテストが一致したかを直接知る方法はありますか?

たとえば、次のコードは $a を出力します。

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

そのような $XXX 変数はありますか?
または、これを行う唯一の方法は、一度に 1 つずつフィルタリングすることです。

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 に答える