Ner*_*ird 3 linux oracle perl command-line
运行从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.
Run Code Online (Sandbox Code Playgroud)
我解释这意味着没有安装模块.所以,我尝试使用以下命令安装它:
/usr/bin/perl -MCPAN -e'install Text::CSV_pm'
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
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.
Run Code Online (Sandbox Code Playgroud)
任何人都能解释我的问题,以及如何解决这个问题?
鉴于您正在使用Perl系统(并且,从评论中看,您似乎拥有root),那么最简单的方法可能是安装为Linux发行版预先构建的软件包.
对于基于Debian/Ubuntu的系统:
$ sudo apt-get install libtext-csv-perl
Run Code Online (Sandbox Code Playgroud)
对于基于RedHat/Centos/Fedora的系统:
$ sudo yum install perl-Text-CSV
Run Code Online (Sandbox Code Playgroud)
如果要使用CPAN安装模块,则语法为
perl -MCPAN -e'install Module::Name'
Run Code Online (Sandbox Code Playgroud)
无需延期
所以你需要
perl -MCPAN -e'install Text::CSV'
Run Code Online (Sandbox Code Playgroud)
否则,CPAN将搜索名为Text :: CSV_pm的模块,该模块(显然)不存在.
你也可以在交互式模块中使用cpan,它更友好一点:
perl -MCPAN -e shell
Run Code Online (Sandbox Code Playgroud)
sudo perl -MCPAN -e shell
如果您尝试更新系统perl,或者设置cpan以便它写入您拥有的目录(例如您的主目录),最好以root身份运行它(即).