Linux 运行Perl脚本时在Text/CSV.pm上出错

Linux 运行Perl脚本时在Text/CSV.pm上出错,linux,oracle,perl,command-line,Linux,Oracle,Perl,Command Line,当运行从Oracle DB获取内容并将结果导出到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-

当运行从Oracle DB获取内容并将结果导出到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.

有谁能解释一下我的问题,以及如何解决这个问题吗?

如果您要用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)然后最简单的方法可能是安装为Linux发行版预先构建的包

对于基于Debian/Ubuntu的系统:

$ sudo apt-get install libtext-csv-perl
$ sudo yum install perl-Text-CSV
对于基于RedHat/Centos/Fedora的系统:

$ sudo apt-get install libtext-csv-perl
$ sudo yum install perl-Text-CSV

/usr/bin/perl-MCPAN-e'install Text::CSV'
你是老板!Noob旁注:如果我早一点成为root,事情会变得更容易。。。非常感谢。仅在windows中应首选此选项。我不建议在linux中从CPAN安装。改用分发存储库。来自CPAN的库版本可能与Perl版本和linux存储库中的库版本不完全兼容。为了保持一致性,应该从本机linux存储库安装所有内容。只要可能。通过这种方式,所有依赖的模块都能很好地协同工作。我不会使用这种方法来安装Perl模块(有更好的技术可以让您更好地控制这个过程),但它回答了用户提出的特定问题。