私は、環境変数PERL5LIBを設定しているのlib /は/ usr/local/perlののPerlモジュールの使用
に自分のPerlモジュールを作成しようとしています:私はモジュールを作成する場合
$ env | grep PERL
PERL5LIB=/usr/local/lib/perl
を:$ PERL5LIB /マイ/ 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:
私は私のモジュールがインストールディレクトリからそれらを分離するためのライブラリパスとして$ PERL5LIBを使用したい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;
。
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
.
にあなたのモジュールの最初の行は奇妙に思える:私の$テスト=新しいマイ:: ModuleTest。 –
Oyvind:Perlの狂信派の多くは、特定の落とし穴を避けるために 'my $ test = My :: ModuleTest-> new();'を使うよう勧めています。 – Konerak