sub do_printf { printf @_ }
sub do_sprintf { print sprintf @_ }
do_printf("%s\n", "ok"); # prints ok
do_sprintf("%s\n", "ok"); # prints 2
Run Code Online (Sandbox Code Playgroud) 我想包装该sprintf函数以供以后进行字符串操作。代码被简化为错误:
#!/usr/bin/perl
sub myPrintf
{
printf (@_);
my $text = sprintf (@_);
print "$text\n";
}
myPrintf("X%.3f Y%.3f\n", 1.223243, 4.567567);
my $t2 = sprintf("X%.3f Y%.3f\n", 1.223243, 4.567567);
print "$t2";
Run Code Online (Sandbox Code Playgroud)
输出是
X1.223 Y4.568
3
X1.223 Y4.568
Run Code Online (Sandbox Code Playgroud)
“3”是否打印在第二行?如何解决这个问题?
我期望:
X1.223 Y4.568
X1.223 Y4.568
X1.223 Y4.568
Run Code Online (Sandbox Code Playgroud)
这里出了什么问题?