我希望我的库名更改(我有理由),但是当我在库路径中使用变量时,它似乎无法找到它.....无法找到APOE。下午在@INC
my ($plugin_name) = @ARGV;
use lib("/usr/share/perl/5.10.1/$plugin_name");
use APOE qw(callAPOE);
这不可能吗?
编辑: $ plugin_name =" AIB-TorrentPanel-v2.00&#34 ;; AND模块名称是 APOE.pm
答案 0 :(得分:3)
你可以写一下:
use lib "/usr/share/perl/5.10.1/$ARGV[0]";
或者,如果你需要做一些比你的示例代码更复杂的设置目录名称:
my $plugin_name;
BEGIN {
($plugin_name) = @ARGV;
}
use lib "/usr/share/perl/5.10.1/$plugin_name";
答案 1 :(得分:2)
您的my ($plugin_name) = @ARGV;
将在运行时运行,对lib
来说已为时已晚。根据{{3}},use lib LIST;
几乎等于
BEGIN { unshift(@INC, LIST) }
但您的$plugin_name
当时无法使用。
但是,您可以将use
替换为require
,如下所示:
my ($plugin_name) = @ARGV;
require "/usr/share/perl/5.10.1/$plugin_name/APOE.pm";