Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl中printf、print和sprintf之间的差异_Perl - Fatal编程技术网

Perl中printf、print和sprintf之间的差异

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'

Perl中
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";
}