加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl模块用法

发布时间:2020-12-15 21:42:26 所属栏目:大数据 来源:网络整理
导读:我正在尝试在/usr/local / lib / perl中创建自己的Perl模块 我有环境变量PERL5LIB设置: $env | grep PERLPERL5LIB=/usr/local/lib/perl 如果我创建一个模块:$PERL5LIB / My / ModuleTest.pm $./test.pl Can't locate object method "new" via package "My:
我正在尝试在/usr/local / lib / perl中创建自己的Perl模块

我有环境变量PERL5LIB设置:

$env | grep PERL
PERL5LIB=/usr/local/lib/perl

如果我创建一个模块:$PERL5LIB / My / ModuleTest.pm

$./test.pl 
Can't locate object method "new" via package "My::ModuleTest" (perhaps you forgot to load "My::ModuleTest"?) at ./test.pl line 8.

test.pl:

#!/usr/bin/perl

use strict;
use warnings;
use My::ModuleTest;

my $test = new My::ModuleTest;
print $test->check;

ModuleTest.pm:

package ModuleTest;

use strict;
use warnings;

sub new {
        my $class = shift;
        my ($opts)= @_;
        my $self = {};
        $self->{test} = "Hello World";

        return bless $self,$class;
}
sub check {
        my $self = shift;
        my ($opts) = @_;

        return $self->{test};
}
1;

我想使用$PERL5LIB作为模块的库路径,将它们与安装目录隔离开来.

Perl @INC:

$perl -le 'print foreach @INC'
/usr/local/lib/perl
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/5.8.8
.

解决方法

试试包My :: ModuleTest;在你的文件ModuleTest.pm中 – 你应该使用全名.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读