原型不匹配:sub main :: strftime

时间:2013-06-19 09:14:02

标签: perl unix-timestamp strftime

在我的perl程序中使用use POSIX qw( strftime );库执行unixtimestamp到日期转换,如下所示,

my $dt = strftime("%m/%d/%y", localtime($fields[0]));

正在按预期进行转换,但收到以下错误。

 Prototype mismatch: sub main::strftime ($\@;$) vs none at 
 /usr/lib/perl5/5.8.5/Exporter.pm line 67.
 at /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/POSIX.pm line 19

有没有人指导我是什么原因以及如何摆脱它?

2 个答案:

答案 0 :(得分:8)

你要么有两个名为strftime的函数(但是你可能还会有另一个警告),或者你在声明它之前使用了strftime


我总是明确指定我的导入,所以我从来没有碰到第一个问题。

 use Date::Format qw( );
 use POSIX        qw( strftime );

答案 1 :(得分:0)

当我在声明/定义之前使用了一个函数时,我遇到了同样的错误。 虽然答案已被接受可能有更多原因,但这可能有助于某人。

sub func1{
 func2();
}

sub func2{
}

解决方案只是在 func1 之前移动 func2

sub func2{
}

sub func1{
 func2();
}