2

例で最もよく尋ねられる:

my $var1=1;
my $var2;
my $var3=3;

# say "at least one undef" if at least one of $var1, $var2, $var3 is undef

明らかに私は明示的にループしてそれを行うことができますが、私はいつも同じ結果を達成する1つのライナーを見つけるのが好きです。

4

2 に答える 2

10
if (grep { !defined } $var1, $var2, $var3) {
  say 'at least one undef'
}

一発ギャグ

say 'at least one undef' if grep { !defined } $var1, $var2, $var3;
于 2010-09-22T07:44:02.023 に答える
1

ボブの答えを拡張すると、場合によっては、実際の数を取得したいことがあります

say 'has ', scalar ( grep { not defined } $var1,$var2,$var3 ),' undef';
于 2010-09-22T10:12:47.457 に答える