मैं/usr/स्थानीय/lib में अपने पर्ल मॉड्यूल बनाने के लिए कोशिश कर रहा हूँ/पर्लपर्ल मॉड्यूल उपयोग
मैं पर्यावरण चर PERL5LIB निर्धारित किया है: यदि मैं एक मॉड्यूल बनाने
$ 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:
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 उपयोग करने के लिए मेरी मॉड्यूल उन्हें स्थापना निर्देशिका से अलग करने के लिए के लिए चाहते हैं।
पर्ल @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; –
ओविंड: यह काम करता है, हालांकि अधिकांश पर्ल कट्टरपंथी आपको कुछ नुकसान से बचने के लिए 'मेरा $ test = My :: मॉड्यूलटेस्ट-> नया();' का उपयोग करने की सलाह देंगे। – Konerak