Смысл короткого замыкания здесь в том, что оценка остановится, как только будет установлен логический результат.
perl -E "@x=qw/a b c d/; for (qw/b w/) { say qq($_ - ), $_ ~~ @x ? q(ja) : q(nein) }"
Для ввода b
Perl не будет рассматривать элементы, следующие за b
в @x
.С другой стороны, встроенная grep
, на которую ссылается цитируемый вами документ, обработает весь список, даже если все, что нужно, может быть логическим.
perl -E "@x=qw/a b c/; for (qw/b d/) { say qq($_ - ), scalar grep $_, @x ? q(ja) : q(nein) }"