在我的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
有没有人指导我是什么原因以及如何摆脱它?
答案 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();
}