2011-07-10 78 views

回答

3

@msft是一個陣列數組,其中每個內部數組包含5個項目(日期,開放/低/高/關閉價格)。

map需要的@msft每個元素,其是存儲在$_數組引用和通過@$_解引用它,並且經由[1..4]採用該陣列的切片(即第二至第五項,因爲陣列是從0開始) 。然後它返回這四個項目。 map將它們連接成一個列表。

實質上,它將五個元素數組的數組展平成由每個子數組的第2到第5項組成的單個數組。

3

@msft的元素是數組引用。的代碼收集來自每個陣列元素1至4成一個單一的列表:

my @msft = (
    [0,1,2,3,4,5], 
    [0,11,22,33,44,55], 
    [0,111,222,333,444,555], 
); 

my @result = map {@$_[1 .. 4]} @msft; 

print "@result\n"; # 1 2 3 4 11 22 33 44 111 222 333 444 

documentation for map

將評估列表中的每個 元件的BLOCK或EXPR(局部設置$ _到 每個元素)並返回列表 值組成的每個 這樣的評估結果。