grep


grep EXPR, LIST
grep BLOCK LIST

 LISTの中身を一つずつ$_にセットしてEXPRやBLOCKの真偽を評価する関数です。リストが要求される場面では真になった値のリストを返し、スカラーが要求される場面では真になった値の個数を返します。

サンプルプログラム

# @aからzが含まれているものを取得して@bに格納
@b = grep /z/, @a;

# @aからzが含まれていないものを取得して@bに格納
@b = grep !/z/, @a;

# @aからzが含まれているものの数を取得して$numに格納
$num = grep /z/, @a;

# $_を変更すると配列のデータも変更されます
# @aの中のaで始まるものの最後にAを付加する
grep {/^a/ && ($_ .= 'A')} @a;

関連項目

配列値の検索
map関数