2011-07-10 95 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(局部设置$ _到 每个元素)并返回列表 值组成的每个 这样的评估结果。