相关疑难解决方法(0)

如何在Perl中使用数组作为内置函数(sprintf,join等)的参数?

我有一个如下数组:

my @a = ('%d %d', 10, 20);
Run Code Online (Sandbox Code Playgroud)

我想使用此数组的元素作为函数的参数.

如果我只是尝试直接使用它,它会在标量上下文中解释:

say sprintf(@a);       #=> 3
Run Code Online (Sandbox Code Playgroud)

我也尝试了这个,当然没有用:

@_ = @a; say sprintf;  #=> Not enough arguments...
Run Code Online (Sandbox Code Playgroud)

某些语言的splat语法在这里也不起作用(我现在只是猜测):

say sprintf(*@a);      #=> (error)
Run Code Online (Sandbox Code Playgroud)

其他内置函数也会出现同样的问题,例如join.

有没有办法采取任意数组(长度未知)和任意函数,并使用数组元素作为函数的参数调用函数?如果是这样,怎么样?

arrays perl

5
推荐指数
1
解决办法
137
查看次数

标签 统计

arrays ×1

perl ×1