私はPerlの初心者です。私はgrep
のリストをフィルタリングする関数を読んでいます。私は次のプログラムに出くわしました。
#!/usr/bin/perl
use strict;
use warnings;
# initialize an array
my @array = qw(3 4 5 6 7 8 9);
# first syntax form:
my @subArray = grep { $_ & 1 } @array;
@array
に奇数番号を返しmy @subArray = grep { $_ & 1 } @array;
声明。表現($_ & 1
)がどのように機能するのか分かりませんでした。私はGoogleで検索しましたが、役に立つリンクは見つかりませんでした。
これはどのような特殊演算子ですか?
EXPRは他にもありますか?
ありがとうございました。
はFYI:のみ奇数の要素を見つけるの動作は、パフォーマンスのボトルネックであることをベンチマークされていない限り、これは**生産コードで使用すべきではありません非常に巧妙なハック**ですより読みやすい実装。 – DVK
@DVK Hm、私の興味のために:このヒントは使われていますか? '$ _ || = $ val' – gaussblurinc
@loldop - ' || = '演算子は完全に適切なイディオムのPerlであり、ハックではありません。しかし、 '$ _'をself-documentedly-named-variavleを使用するのではなく、非常に短い' map'/'grep'ブロックで使用しない限り、よく書かれていないコードの印です。 – DVK