请考虑以下示例代码.
my $a = "test";
my $b = "stackoverflow";
test("%s - %s\n", $a, $b);
sub test {
my $error = sprintf(@_);
print $error;
}
Run Code Online (Sandbox Code Playgroud)
这打印3而不是格式化的字符串.甚至可以做我正在尝试的事情吗?
正如VGE所说,它是造成问题的原型,但你需要使用shift,而不是pop:
sub test {
my $error = sprintf(shift, @_);
print $error;
}
Run Code Online (Sandbox Code Playgroud)
sprintf在标量上下文中计算其第一个参数.如果那是一个数组,你得到数组的长度.
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |