grepとかmapの使い方がまだよく・・・

grepとかmapの違いとか使い方がまだよく分かりません。

ということで今から少し勉強。

追記 grepメモ

grepは、リストとテスト式を受け付ける。

my @numbers = (1, 2, 15, 30);
my @result = grep $_ > 10, @numbers;

結果は、15と30がリストで返される。

テスト式の後ろには『,』カンマが必要。

受け付けたリストを順番に$_に格納する。

テスト式をサブルーチンにすることも出来るが、サブルーチンの後ろにもカンマは必要。

でもgrepの後ろがブロック形式のとき、カンマを使ってはいけない(みたい)。

ブロックの中は、サブルーチンと異なりreturnとかは使えない。だから最後に評価(算出)された値が変数に格納される。

grepの最低の基本は、こんな感じかな。まだいろいろな便利な使い方があるみたいだけど。

追記 mapメモ

grepでは、テスト式で出力される答えは、全てスカラーコンテキストだけど、mapは、毎回リストコンテキストになっている。

テスト式ではなく、変換式になっている。

式に、$_は何個でも使える。

mapとgrepは似ているから、よく分からなくなってしまう場合が私にはまだある。