如何将Perl的本地时间与print一起使用以获得时间戳? [英] How do I use Perl's localtime with print to get the timestamp?

查看:67
本文介绍了如何将Perl的本地时间与print一起使用以获得时间戳?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用以下语句获取当前时间。

 打印 $ 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆