未定义的子例程& main :: timelocal错误

时间:2011-04-05 07:07:47

标签: perl datetime

执行perl模块时出现以下错误:

Undefined subroutine &main::timelocal

我已经定义了时间,我希望格式为DDMMYYYY而没有任何分隔符。

有人可以帮我吗?

4 个答案:

答案 0 :(得分:3)

要像这样使用timelocal,你需要导入它:

use Time::Local 'timelocal';

(并确保您正确调用它;请参阅Time::Local

但也许你的意思是localtime?或者您可能需要POSIX::strftime

答案 1 :(得分:2)

你不是很具体在哪里得到时间。这适用于当前日期,使用核心Time::Piece模块:

use Time::Piece;
print localtime->dmy('');    # 05042011

如果你有时间变量,你可以

use Time::Piece;
print localtime($time)->dmy('');

dmy调用中的空字符串是分隔符。

答案 2 :(得分:1)

核心POSIX模块包含一个'strftime'函数,可处理所有标准的Unix日期/时间格式序列。

$ perl -MPOSIX=strftime -le'print strftime "%d%m%Y", localtime'

或者,在程序中,

use POSIX 'strftime';

print strftime '%d%m%Y', localtime, "\n";

答案 3 :(得分:-1)

这是一个旧的,但我有这个确切的错误,并通过使用不同的解决方案查看上述示例解决了它。

原因是我没有包括';'在使用声明的最后!

use Time::Local ;