我创建了一个 perl 脚本,用于获取字符串并输出为要加载到数据库中的文件。
现在,我正在使用 Solaris 5.10 运行 perl 脚本,但出现错误,我认为它引用了模块。
Perl 脚本示例:
#!/usr/bin/perl
use strict;
use warnings;
use Date::Simple ('date','today');
my $date_increment;
.....
错误:
Can't locate Date/Simple.pm in @INC (@INC contains: /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .) at ./sqa_perl.pl line 4.
是否有我需要安装的模块?或者 Solaris 5.10 中是否有 perl 模块的位置?
答案1
是的:您绝对需要“日期::简单“ 模块某处。
错误消息中提到了 perl 正在查找的路径:
/usr/perl5/5.8.4/lib/i86pc-solaris-64int
/usr/perl5/5.8.4/lib
/usr/perl5/site_perl/5.8.4/i86pc-solaris-64int
/usr/perl5/site_perl/5.8.4
/usr/perl5/site_perl
/usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int
/usr/perl5/vendor_perl/5.8.4
/usr/perl5/vendor_perl
.
正如所提到的安德鲁,最好不要简单地将其添加到您的 中/usr
,这也意味着您必须use lib '/some/path';
在脚本中添加一些。
以下是一些方法:
以旧的(且简单的)方式安装此模块,在脚本自己的本地目录上:(
首先,获取模块安装存档来自 CPAN)tar -zxvf Date-Simple-3.03.tar.gz cd Date-Simple-3.03 PREFIX=/your/script/directory perl Makefile.pl make && make install
然后将脚本的开头修改为:
#!/usr/bin/perl use strict; use warnings; use File::Spec::Functions; use FindBin; use lib catfile($FindBin::Bin, 'lib'); ...
珀尔布鲁也可以是一个解决方案,因为这是在系统目录之外托管您自己的 perl 安装的一种相当简单的方法(您可能需要搜索一些有关 Solaris 的信息):
- 一些 Perlbrew 的起点(主要针对Linux系统)
- 应用程序::perlbrew 文档
如果您对您的系统感到足够满意
/usr
,您仍然可以使用系统 perl 。CPAN安装此模块的工具: