map BLOCK LIST
map EXPR,LIST
EXPR可以是子函數名、正則表達式等。LIST是輸入列表或陣列。
簡單地說,map就是起了一個替代 foreach 循環的作用,map會把LIST中的元素一個個取出,放到系統變量$_中,然後調用 BLOCK 去處理。
BLOCK 處理過的結果由map返回,仍然是一個LIST
#map_study.pl
@arr = (1 .. 10);
sub square {
if ($_ >5)
{
$result = $_*$_;
return $result;
}else{
$result = 0;
return $result;
}
}
@arr2 = (21..30);
@squared = map(square,@arr2);
print "square(\@arr2)=>","@squared","\n";
@squ = map {$_*$_} @arr;
#@squ = map (square,@arr);
print "\@squ => @squ\n";
#輸出結果:
#square(@arr2)=>441 484 529 576 625 676 729 784 841 900
#@squ => 1 4 9 16 25 36 49 64 81 100
can be rewritten with any of the following code lines:
@array = map (chr, @array);
can be rewritten with any of the following code lines:
@array = map (chr $_, @array);
@array = map { chr } @array;
@array = map { chr $_ } @array;
沒有留言:
張貼留言