Подтвердить что ты не робот

Perl - как создать массив с n пустых строк или нулей?

Когда я манипулирую CSV файлами в Perl, мне часто приходится инициализировать массив с некоторым количеством одинаковых элементов:

my $arr = [];
for my $i (0..$n-1) {
    push @$arr, "";
}

Есть ли способ сделать это в более компактной форме?

Совершенно я хотел бы иметь выражение для этой цели, чтобы я мог легко добавлять отсутствующие столбцы:

f([@$some_tab, n_elems("", $column_number - scalar(@$some_tab))]);

Я знаю, как писать функцию, но я никогда не делаю этого в 10-строчных сценариях.

4b9b3361

Ответ 1

Используйте множитель.

my @arr = ("") x $n;

Обновление: обратите внимание, что это дублирует элемент, что может быть нежелательно, если вы заполняете массив ссылками. В таком случае, когда каждый элемент необходимо построить, вы можете использовать map:

my @arr = map { [] } 1..$n;