Perl中printf,print和sprintf的区别?

par*_*thi 13 perl

什么是具体用法print,printfsprintf在Perl?

这三个关键字都用于打印目的,但是有人可以简单区分它吗?

Seb*_*ian 16

短:

参见手册:

长:

print是默认输出功能.它没有格式化,但如果调用Perl,可能会附加一个换行符-l:

print $foo;
print "Hello $world";
print $filehandle $something;
Run Code Online (Sandbox Code Playgroud)

sprintf 是格式化程序,根本不进行任何打印:

$result = sprintf('The %s is %d', 'answer', 42);
Run Code Online (Sandbox Code Playgroud)

printf是相同的sprintf,但实际打印结果:

printf 'This is question %d on %s', 36882022, 'StackOverflow';
Run Code Online (Sandbox Code Playgroud)

有关有效占位符/格式字符串的更多详细信息,请参阅sprintf文档.

从5.10开始,Perl也支持say哪个基本上是print一个额外的加号\n.