在 Fedora 中,Perl 程序找不到 Time::Piece 库

在 Fedora 中,Perl 程序找不到 Time::Piece 库

我有一个名为的 Perl 程序/usr/bin/octbatch在 Fedora 17 Linux 上作为脚本运行。

当我运行此命令时:

/usr/bin/octbatch

我收到错误:

Can't locate Time/Piece.pm in @INC (@INC contains: 
/usr/local/lib64/perl5 /usr/local/share/perl5 
/usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl 
/usr/lib64/perl5 /usr/share/perl5) at /usr/bin/octbatch line 6.
BEGIN failed--compilation aborted at /usr/bin/octbatch line 6.

以下是 Perl 脚本的相关行:

#!/usr/bin/perl -wT

$ENV{PATH} = "/bin:/usr/bin:/usr/local/bin";
use strict;
use POSIX qw(setsid :sys_wait_h);

use Time::Piece;
use Time::Local;

我必须安装 Piece.pm,这样 perl 才能找到它。我已经用这个命令安装了它(使用默认值):

/usr/bin/perl -MCPAN -e install Time::Piece

我有 Piece.pm 文件,/home/el/perl5/lib/perl5/x86_64-linux-thread-multi/但是当我运行 octbatch 命令时,我得到了与上面相同的错误。好像根本找不到它。

这是我的 PERL5LIB 变量:

el@defiant ~/gnuoctbluehost/single_stock_analysis $ env | grep PERL5

PERL5LIB=/home/el/perl5/lib/perl5/x86_64-linux-thread-multi:/home/el/perl5/lib/perl5

Piece.pm 位于 /home/el/perl5/lib/perl5/x86_64-linux-thread-multi 下

所以我的问题是,为什么找不到我的 Piece.pm 文件?我可以通过哪些方式获取 @INC 变量来包含它。或者我如何让 perl 看到它?

答案1

Fedora 17 包含 Time::Piece

使用命令:yum install perl-Time-Piece

您可以通过谷歌搜索找到答案:fedora 17 Time-Piece然后点击第一个链接。

解决方法是手动包含路径和库:

确保以下行位于 之前use Time::Piece;但之后#!/usr/bin/perl -wT

use lib "/home/el/perl5/lib/perl5/x86_64-linux-thread-multi";

它告诉我的 perl 程序在哪里寻找 Time::Piece。然后程序就可以运行了。

相关内容