関数順 インデックス
目的別 インデックス

構文
 
 grep 条件, 調査対象
 grep 条件を記述するブロック 調査対象

返り値
 
 ・リストコンテキストの場合,条件が真となる値のリスト。
 ・スカラーコンテキストの場合,条件が真となる値の数。

説明

  • 調査対象の中身を一つずつ$_にセットして条件や条件を記述するブロックの真偽を評価して結果を返します。
  • 条件の場合は調査対象の前にカンマが必要で,条件を記述するブロックの場合は調査対象の前にカンマが不要なので間違えないように気を付けて下さい。

使用例

配列@filesから,拡張子.txtのものだけを取得する
#!/usr/bin/perl
use strict;
use warnings;

my @files = qw(
  foo.txt
  bar.pdf
  baz.pl
  hoge.pm
  fuga.doc
  README.TXT
  README.DOC
);

my @textfiles = grep /\.txt$/i, @files;

foreach my $file (@textfiles) {
  print $file, "\n";
}
配列@dataから50よりも大きな数字のみを抽出する
#!/usr/bin/perl
use strict;
use warnings;

my @data = (1, 10, 100, 1000, 10000);

my @items = grep {$_ > 50} @data; 50よりも大きいものを取得

foreach my $item (@items) {
  print $item, "\n";
}
標準入力から読み込んだデータのうち,useで始まる行を出力する
#!/usr/bin/perl
use strict;
use warnings;

print grep /^\s*use/, <STDIN>;