当我在Perl中操作CSV文件时,我经常需要使用一些相同的元素初始化一个数组:
my $arr = [];
for my $i (0..$n-1) {
push @$arr, "";
}
有没有办法以更紧凑的形式做到这一点?
完全我希望有一个表达式用于此目的,以便我可以轻松添加缺少的列:
f([@$some_tab, n_elems("", $column_number - scalar(@$some_tab))]);
我知道如何编写函数,但我从不在10行脚本中执行此操作。
答案 0 :(得分:42)
使用乘数。
my @arr = ("") x $n;
更新:请注意,这会复制元素,如果您使用引用填充数组,则可能不需要这样做。在这种情况下,需要构建每个元素,您可以使用map
:
my @arr = map { [] } 1..$n;