Perl:Undefined subroutine& main :: gmdate?

时间:2011-07-19 13:00:53

标签: perl

这是我正在尝试做的事情(没有什么复杂的):

use Digest::MD5 qw(md5 md5_hex md5_base64);

$apikey = '1234';  
$secret = '123';  
$timestamp = gmdate('U');
$sig = md5($apikey . $secret . $timestamp);

echo $sig

因此,错误发生在$ timestamp = gmdate行上。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

我认为您正在寻找gmtime函数,而不是gmdate函数。虽然,现在我发现你正在将'U'传递给它,但我很困惑。

啊,我现在看到,PHP使用gmdate('U')的方式与Perl 5使用gmtime()的方式相同。

糟糕,我的记忆失败,您需要使用Time::LocalPOSIX::mktimelocaltimegmtime的结果转换为纪元秒。

#!/usr/bin/perl

use strict;
use warnings;

use POSIX qw/mktime/;
use Time::Local qw/timegm/;

print "the time is now ", timegm(localtime()), " or ", mktime(gmtime()), "\n";