perl - 如何创建一个包含 n 个空字符串或零的数组?

标签 perl

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

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

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

完美地我想有一个用于此目的的表达式,以便我可以轻松添加缺少的列:
f([@$some_tab, n_elems("", $column_number - scalar(@$some_tab))]);

我知道如何编写函数,但我从不使用 10 行脚本编写。

最佳答案

使用乘数。

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

更新:请注意,这会复制元素,如果您使用引用填充数组,这可能是不可取的。在这种情况下,需要构造每个元素,您可以使用 map :
my @arr = map { [] } 1..$n;

关于perl - 如何创建一个包含 n 个空字符串或零的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5323845/

相关文章:

regex - perl 正则表达式,删除捕获的内容

perl - 如何并行运行子程序?

multithreading - 相同版本但具有不同配置选项的两个 perls 之间的兼容性?

windows - Perl chdir 不起作用

perl - 递归列出所有文件但排除一些目录(.git .svn)

perl - 为什么 EPIC eclipse 插件不显示 "Explain Errors/Warnings"中的任何信息?

Perl 将@ARGV 数组分配给变量

linux - mod_perl 看不到/tmp 中的文件

xml - Perl 的 XML::SemanticDiff 是否可以硬塞进两个 XML 文件的顺序无关的比较中?

perl - 一旦进程开始使用 shell 脚本就放弃 shell