Perl中Sprintf和printf之间的区别

use*_*045 1 perl printf

sprintfprintfPerl有什么区别?

我真的很困惑那些功能.

我知道printf.它用于STDOUT,但我想深入了解这些功能.

tri*_*eee 9

sprintf只返回一个格式化的字符串,将其printf打印到文件句柄.

printf HANDLE "%s", $arg
Run Code Online (Sandbox Code Playgroud)

可以(非常冗余地)写成

$formatted = sprintf "%s", $arg
print HANDLE $formatted
Run Code Online (Sandbox Code Playgroud)

当然,这个具体的例子最自然地写成

print HANDLE $arg
Run Code Online (Sandbox Code Playgroud)

因为我用于示例的格式字符串是如此微不足道,以至于无用.

当然,HANDLE是可选的,默认为STDOUT,尽管您也可以使用更改默认值select.

  • `print HANDLE $ formatted`的不同之处在于print将$ \添加到输出中,但printf没有. (3认同)