我如何创建一个数组并自动填充perl中的元素

时间:2010-12-09 18:12:53

标签: arrays 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,而是如何使用@time填充1 .. @arr,并且可能还有其他类型的元素,如TIME,等等。

2 个答案:

答案 0 :(得分:5)

这会使用@time1的值初始化$#arr

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

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

  

并且可能还有其他类型的元素,如TIME,等等。

我不太清楚你在这里的意思,但你应该看一下map,以便通过转换另一个列表来生成值列表。那可能是你想要的。

答案 1 :(得分:4)

@time = 1 .. @arr;

如果您想对每个号码执行某些操作,例如将它们乘以2,则可以使用map

@time = map { 2 * $_ } 1 .. @arr;