如何将Perl的本地时间与print一起使用以获得时间戳? [英] How do I use Perl's localtime with print to get the timestamp?
问题描述
我使用以下语句获取当前时间。
打印 $ query在本地时间成功执行;
打印 $ query在,(localtime)成功执行;
打印 $ query在成功执行。(本地时间);
输出
在355516731103960成功执行
在355516731103960成功执行了
2010年4月7日星期三成功执行了
前两个语句未以日期格式打印当前时间。
第三条语句仅以日期格式给出正确的输出。
我的理解是第一个语句在标量上下文中返回值,因此它返回数字
然后在第二张打印纸中,我仅在列表上下文中使用了本地时间,为什么它也给出了数字输出。 >解决方案
也许对于Perl编程而言,最重要的东西就是上下文。许多内置的子例程和运算符的行为因上下文而异。
print $ query在本地成功执行 , \n; #list context
print $ query在,(localtime), \n成功执行; #列出上下文
打印 $ query在成功执行。当地时间 \n; #标量上下文
打印 $ query在。(localtime), \n处成功执行; #标量上下文
打印 $ query在成功执行,标量本地时间, n; #标量上下文
打印 $ query在,标量(本地时间), \n成功执行了; #标量上下文
这可以通过拆分语句来弄清楚。
我的$ time =当地时间; #标量上下文
打印 $ query在$ time\n成功执行;
my @time =当地时间; #list context
print $ query在@ time\n成功执行;
I have used the following statements to get the current time.
print "$query executed successfully at ",localtime;
print "$query executed successfully at ",(localtime);
print "$query executed successfully at ".(localtime);
Output
executed successfully at 355516731103960
executed successfully at 355516731103960
executed successfully at Wed Apr 7 16:55:35 2010
The first two statements are not printing the current time in a date format. Third statement only giving the correct output in a date format.
My understanding is the first one is returning a value in scalar context, so it is returning numbers.
Then in the second print I used localtime in list context only, why it's also giving number output.
Perhaps the most important thing you can learn for programming in Perl, is context. Many built-in subroutines, and operators, behave differently depending on the context.
print "$query executed successfully at ", localtime, "\n"; # list context
print "$query executed successfully at ",(localtime),"\n"; # list context
print "$query executed successfully at ". localtime, "\n"; # scalar context
print "$query executed successfully at ".(localtime),"\n"; # scalar context
print "$query executed successfully at ", scalar localtime, "\n"; # scalar context
print "$query executed successfully at ", scalar (localtime),"\n"; # scalar context
This can be made clearer by splitting up the statements.
my $time = localtime; # scalar context
print "$query executed successfully at $time\n";
my @time = localtime; # list context
print "$query executed successfully at @time\n";
这篇关于如何将Perl的本地时间与print一起使用以获得时间戳?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!