- 论坛徽章:
- 0
|
三个模块以及文件如下
/lib/API.pm
===============================
package Bastille::API;
use Exporter;
@ISA = qw(Exporter);
@EXPORT = qw /getGlobal/;
Sub getGlobal{
return “test”;
}
1;
/lib/TestAPI.pm
===============================
package Bastille::TestAPI;
use Exporter;
@ISA = qw(Exporter);
@EXPORT = qw / B_TODOFlags /;
use Bastille::API;
Sub B_TODOFlags {
my $var = &getGlobal();
}
1;
/tmp/main.pl
===============================
#!/usr/bin/perl
use lib ‘/lib’;
use Bastille::TestAPI;
my $var = &B_TODOFlags;
print $var, "\n";
# ./main.pl
Can't locate Bastille/TestAPI.pm in @INC (@INC contains: /tmp /opt/perl_32/lib/5.8.3/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/5.8.3 /opt/perl_32/lib/site_perl/5.8.3/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/site_perl/5.8.3 /opt/perl_32/lib/site_perl /opt/perl_32/lib/vendor_perl/5.8.3/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/vendor_perl/5.8.3 /opt/perl_32/lib/vendor_perl .) at ./main.pl line 4.
BEGIN failed--compilation aborted at ./main.pl line 4.
按照programming perl上说, 我应该把API.pm 和TestAPI.pm放到/lib/Bastille目录下才行, 因为perl会将::解释为/, 从而会去/lib/Bastille/下寻找模块。
但是我看到我们项目里的没有根本没有Bastille这个目录程序也能运行。 不知道有没有高人知道, 如何可以达到这样的效果。 |
|