我有一个名为的 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。然后程序就可以运行了。