Perl中printf、print和sprintf之间的差异
Perl中Perl中printf、print和sprintf之间的差异,perl,Perl,Perl中print、printf和sprintf的具体用法是什么 这三个关键词都用于打印目的,但有人能简单地加以区分吗?简称: 见手册: 长: print是默认的输出功能。如果使用-l调用Perl,它不进行格式化,但可能会附加一个换行符: print $foo; print "Hello $world"; print $filehandle $something; sprintf是一个格式化程序,根本不进行任何打印: $result = sprintf('The %s is %d'
print
、printf
和sprintf
的具体用法是什么
这三个关键词都用于打印目的,但有人能简单地加以区分吗?简称: 见手册:
print
是默认的输出功能。如果使用-l
调用Perl,它不进行格式化,但可能会附加一个换行符:
print $foo;
print "Hello $world";
print $filehandle $something;
sprintf
是一个格式化程序,根本不进行任何打印:
$result = sprintf('The %s is %d', 'answer', 42);
printf
与sprintf
相同,但实际上是打印结果:
printf 'This is question %d on %s', 36882022, 'StackOverflow';
有关有效占位符/格式字符串的详细信息,请参阅
从5.10开始,Perl还支持基本上是
打印
加上额外的\n
打印
输出
printf
采用类似“%3f”的格式化字符串,并使用它格式化输出
sprintf
与printf相同,只是它实际上没有输出任何东西。它返回一个格式化的字符串。其他人涵盖了要点,但另一个重要的小事实是,您可以将一个列表传递给print
,就像die
一样。如果从列表开始,它有时会很方便,而且显然比串联更有效
e、 g
也许你还应该添加
比如说printf=print-sprintf
;)@佩斯卡多。不完全是<代码>perl-e'@t=(%s\n,“foo”);打印sprintf@t;printf@t
这个问题是如何得到11分的,而毫无疑问,根本没有研究,甚至没有阅读投入?
sub log_with_timestamp {
my $timestamp = get_timestamp();
print $timestamp, ' ', @_, "\n";
}