我有一个如下数组:
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.
有没有办法采取任意数组(长度未知)和任意函数,并使用数组元素作为函数的参数调用函数?如果是这样,怎么样?