Как я могу проверить, является ли значение undef в Perl? - PullRequest
2 голосов
/ 22 сентября 2010

Лучше всего спросить на примере:

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

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

Очевидно, что я могу явно выполнить цикл и сделать это, но мне всегда нравится находить лайнеры, которые достигают того же результата.

Ответы [ 2 ]

10 голосов
/ 22 сентября 2010
if (grep { !defined } $var1, $var2, $var3) {
  say 'at least one undef'
}

один вкладыш

say 'at least one undef' if grep { !defined } $var1, $var2, $var3;
1 голос
/ 22 сентября 2010

расширение ответа Боба, в некоторых случаях вам может понадобиться получить фактическое количество

say 'has ', scalar ( grep { not defined } $var1,$var2,$var3 ),' undef';
...