2011-04-05 35 views
-1

我有以下錯誤,當我執行我的Perl模塊:未定義子程序及主要:: timelocal錯誤

Undefined subroutine &main::timelocal 

我已經定義了時間,我想在DDMMYYYY沒有任何分隔符的格式。

任何人都可以幫助我嗎?

+2

您需要更清楚地描述您的要求。並展示一些代碼,展示你所嘗試過的東西。 – 2011-04-05 09:40:42

+0

有幾個很好的答案給你..請顯示一些代碼,以便更容易給出一個適合您的實際問題的答案。 – 2011-04-05 13:19:13

回答

2

要使用timelocal這樣,你需要將其導入:

use Time::Local 'timelocal'; 

(並確保你正確地調用它;看到Time::Local

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

+0

我想在本地時間只實施..如果我使用像DD/MM/YYYY它即將..但我的要求是DDMMYYYY。 – Cara 2011-04-05 09:19:03

+0

其工作很好...謝謝你 – Cara 2011-04-06 03:40:21

2

你不是很具體在哪裏得到時間。這適用於當前的日期,使用核心Time::Piece模塊:

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

如果您有變量的時候,你可以做

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

dmy調用空字符串分隔符。

+0

和這個時間::片沒有安裝在我的系統。 – Cara 2011-04-05 09:23:37

+0

您使用的是哪個版本的Perl? Time :: Piece從5.10.0開始已經進入標準Perl庫。 – 2011-04-05 09:43:35

+0

其實它是perl的內部修改..我認爲他們沒有包括... – Cara 2011-04-05 09:49:27

1

核心POSIX模塊包含一個處理所有標準Unix日期/時間格式序列的'strftime'函數。

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

或者,在一個程序中,

use POSIX 'strftime'; 

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

這是一箇舊的,但我有這個確切的錯誤和尋找與不同的解決方案上面的例子中解決它。

原因是我沒有包括';'在使用聲明的最後!

use Time::Local ; 
相關問題