Неопределенная подпрограмма & main :: timelocal error - PullRequest
0 голосов
/ 05 апреля 2011

У меня возникает следующая ошибка при запуске моего модуля perl:

Undefined subroutine &main::timelocal

Я определил время и хочу в формате DDMMYYYY без разделителей.

Может кто-нибудьпомочь мне в этом?

Ответы [ 4 ]

3 голосов
/ 05 апреля 2011

Чтобы использовать timelocal как этот, вам нужно импортировать его:

use Time::Local 'timelocal';

(и убедитесь, что вы его правильно вызываете; см. Time :: Local )

Но, возможно, вы имели в виду по местному времени ?Или вы можете захотеть POSIX :: strftime .

2 голосов
/ 05 апреля 2011

Вы не очень точно указали, где взять время. Это работает для текущей даты, используя модуль core Time :: Piece :

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

Если у вас есть время в переменной, вы можете сделать

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

Пустая строка в вызове dmy является разделителем.

1 голос
/ 05 апреля 2011

Основной модуль POSIX содержит функцию 'strftime', которая обрабатывает все стандартные последовательности форматирования даты / времени Unix.

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

Или в программе

use POSIX 'strftime';

print strftime '%d%m%Y', localtime, "\n";
0 голосов
/ 05 июня 2013

Это старая ошибка, но у меня была именно эта ошибка, и я решил ее, посмотрев на приведенные выше примеры с другим решением.

Причина в том, что я не включил ';'в конце заявления об использовании!

use Time::Local ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...