2010-12-09 51 views
1

可以說,我有一個數組:如何創建一個數組,並自動填充在Perl的元素

@time = qw( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 );

1..50取決於數組的大小@arr

所以值而不是手動聲明@time,我怎樣才能用1 .. @arr來填充@time,並且可能還有其他類型的元素,例如TIME等單位,等等。

+0

「其他類型的元素」是什麼意思?你如何確定其他類型的值? – 2010-12-09 18:25:26

+0

我懷疑你的意思是$#arr(它給出了數組中最後一個元素的索引),儘管你也可能意味着@arr(它在標量上下文中給出了數組的大小,即一個大於列表中的最後一個元素)。我很肯定你*不*意思是@#arr,AFAIK是無效的Perl語法。 – 2010-12-09 18:26:34

回答

5

這將初始化@time1值來$#arr

@time = (1..$#arr); 

我懷疑你可能想要0 .. $#arr而不是1 .. $#arr

,並可能有元素的其他類型的像時間(秒),等等

我不太清楚你的意思在這裏,但你應該看看map爲一個便捷的方式通過變換另一個列表來生成一個值列表。這可能是你在追求的。

4
@time = 1 .. @arr; 

如果你想要做的事,每個編號都一樣,乘以2它們,你可以使用map

@time = map { 2 * $_ } 1 .. @arr; 
相關問題