Как я могу создать массив и автоматически заполнить элементы в Perl - PullRequest
1 голос
/ 09 декабря 2010

скажем, у меня есть массив:

@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 и, возможно, иметь другие ТИПЫ элементов, такие как ВРЕМЯ в секундах и т. Д.

Ответы [ 2 ]

5 голосов
/ 09 декабря 2010

Это инициализирует @time со значениями от 1 до $#arr:

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

Я подозреваю, что вы, вероятно, хотите 0 .. $#arr, а не 1 .. $#arr?

и, возможно, другие типы элементов, такие как время в секундах и т. Д.

Я не совсем уверен, что вы имеете в виду здесь, но вы должны взглянуть на map для одного удобного способа создания списка значений путем преобразования другого списка. Это может быть то, что вы после.

4 голосов
/ 09 декабря 2010
@time = 1 .. @arr;

Если вы хотите что-то сделать с каждым числом, например умножить их на 2, вы можете использовать map:

@time = map { 2 * $_ } 1 .. @arr;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...