使用Perl中的Time :: localtime函数无法打印系统本地时间

时间:2014-08-01 05:33:50

标签: perl time

我编写了一个Perl脚本来从配置文件中获取特定信息

use Time::localtime;
my $date_string = ctime(stat($filepath)->mtime);
print "$date_string\t";

上面的代码打印了文件的最后修改时间和日期,但问题是我无法使用以下函数打印报告生成时间

my $time = localtime; # scalar context
print "executed successfully at $time\n";

我收到以下错误

executed successfully at Time::tm=ARRAY(0x336e048)

2 个答案:

答案 0 :(得分:2)

Time::localtime模块默认导出覆盖核心localtime()函数,将其替换为返回" Time :: tm"对象

因此,如果您想使用核心Perl localtime,请按以下方式编写:

my $time = CORE::localtime;

答案 1 :(得分:1)

在您的代码中,您将获得对数组的引用。因此打印参考。

使用

my $time = scalar(CORE::localtime); # scalar context

您可以找到scalar <{1}}功能的更多信息here

  

描述
  此功能强制评估EXPR   标量上下文,即使它通常在列表上下文中工作。

     

语法     以下是此函数的简单语法:标量   EXPR返回值     此函数返回标量