当运行从Oracle数据库获取内容并将结果导出为CSV的Perl脚本时,我在尝试通过命令行运行时遇到此错误:
Can't locate Text/CSV.pm in @INC (@INC contains:
/usr/lib/perl5/site_perl/5.16.2/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.16.2
/usr/lib/perl5/vendor_perl/5.16.2/x86_64-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.16.2
/usr/lib/perl5/5.16.2/x86_64-linux-thread-multi /usr/lib/perl5/5.16.2
/usr/lib/perl5/site_perl/5.16.2/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.16.2 /usr/lib/perl5/site_perl .) at
./OracleScript.pl line 4. BEGIN failed--compilation aborted at
./OracleScript.pl line 4.
我将此解释为意味着未安装该模块。所以,我尝试使用以下命令安装它:
/usr/bin/perl -MCPAN -e'install Text::CSV_pm'
我收到此错误:
Database was generated on Mon, 06 Oct 2014 10:41:02 GMT Warning:
Cannot install Text::CSV_pm, don't know what it is. Try the command
i /Text::CSV_pm/
to find objects with matching identifiers.
有人可以解释我的问题,以及如何解决这个问题?
答案 0 :(得分:8)
鉴于您正在使用Perl系统(并且,从评论中看,您似乎拥有root),那么最简单的方法可能就是安装为Linux发行版预先构建的软件包。
对于基于Debian / Ubuntu的系统:
$ sudo apt-get install libtext-csv-perl
对于基于RedHat / Centos / Fedora的系统:
$ sudo yum install perl-Text-CSV
答案 1 :(得分:6)
如果要使用CPAN安装模块,则语法为
perl -MCPAN -e'install Module::Name'
无需延期
所以你需要
perl -MCPAN -e'install Text::CSV'
否则CPAN将搜索名为Text :: CSV_pm的模块,该模块(显然)不存在。
你也可以在交互式模块中使用cpan,它更友好一点:
perl -MCPAN -e shell
如果您尝试更新系统perl,或者设置cpan以便它写入您拥有的目录(例如您的主目录),最好以root用户身份运行(即sudo perl -MCPAN -e shell
)。 / p>