- ベストアンサー
grepとsort
my $files = readdir(DIR); @files = grep { !/^\.\.?$/; } @files; 「.」と「..」の除去 @files = sort { $a cmp $b; } @files; ファイル名のソート この2文についてですが、grepとsortに関する文法がよくわかりません。 grepって、除去するコマンドなんでしょうか? sortでは、$a cmp $bが何を意味しているのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
grepは配列から指定条件に合う要素を抽出する関数ですが、抽出条件が否定形なので、除去する動きになってます。 cmpは文字列の大小関係を求める演算子です。関数sortは、配列の要素を、$aと$bに入れて比較しながら、ソートを行います。 詳しくは、Perlに標準添付されているドキュメントperlfuncをご覧下さい。
- 参考URL:
- http://www.perldoc.com/
お礼
ありがとうございます。理解できました。実は僕、パールを動かせるUNIX環境をもっていません。 趣味でUNIXを全体的に説明している分厚い本を読んでいるのです。 で、本のうち2章分がパールの説明にあてられているのですが、grepとsortみたいな一つ一つの文に対する詳細な説明があまりなされていないものですから・・・すみません。