perl - 如何使用n个空字符串或零创建数组?

ags*_*mek 25 perl

当我在Perl中操作CSV文件时,我经常需要使用一些相同的元素初始化一个数组:

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

有没有办法以更紧凑的形式做到这一点?

完全我想有一个表达式用于此目的,以便我可以轻松添加缺少的列:

f([@$some_tab, n_elems("", $column_number - scalar(@$some_tab))]);
Run Code Online (Sandbox Code Playgroud)

我知道如何编写函数,但我从不在10行脚本中编写函数.

Tim*_*Tim 44

使用乘数.

my @arr = ("") x $n;
Run Code Online (Sandbox Code Playgroud)

更新:请注意,这会复制元素,如果您使用引用填充数组,则可能不需要.在这种情况下,需要构造每个元素,您可以使用map:

my @arr = map { [] } 1..$n;
Run Code Online (Sandbox Code Playgroud)