假设我有一个数组:
@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
,而是如何使用@time
填充1 .. @arr
,并且可能还有其他类型的元素,如TIME,等等。
答案 0 :(得分:5)
这会使用@time
到1
的值初始化$#arr
:
@time = (1..$#arr);
我怀疑你可能想要0 .. $#arr
而不是1 .. $#arr
?
并且可能还有其他类型的元素,如TIME,等等。
我不太清楚你在这里的意思,但你应该看一下map,以便通过转换另一个列表来生成值列表。那可能是你想要的。
答案 1 :(得分:4)
@time = 1 .. @arr;
如果您想对每个号码执行某些操作,例如将它们乘以2,则可以使用map
:
@time = map { 2 * $_ } 1 .. @arr;