尝试使用库perl时在库名称中使用变量

尝试使用库perl时在库名称中使用变量,perl,Perl,我想更改库名我有理由,但当我在库路径中使用变量时,它似乎找不到它….在@INC中找不到APOE.pm my ($plugin_name) = @ARGV; use lib("/usr/share/perl/5.10.1/$plugin_name"); use APOE qw(callAPOE); 这不可能吗 编辑: $plugin_name=AIB-TorrentPanel-v2.00; 模块名为 APOE.pm你的my$plugin\u name=@ARGV;将在运行时运行,对于lib来说

我想更改库名我有理由,但当我在库路径中使用变量时,它似乎找不到它….在@INC中找不到APOE.pm

my ($plugin_name) = @ARGV; 
use lib("/usr/share/perl/5.10.1/$plugin_name");
use APOE qw(callAPOE);
这不可能吗

编辑: $plugin_name=AIB-TorrentPanel-v2.00; 模块名为 APOE.pm

你的my$plugin\u name=@ARGV;将在运行时运行,对于lib来说已经太晚了。根据需要,使用lib列表;几乎相等

BEGIN { unshift(@INC, LIST) }
但是您的$plugin_名称在当时不可用

但是,您可以使用require替换您的使用,如下所示:

my ($plugin_name) = @ARGV;
require "/usr/share/perl/5.10.1/$plugin_name/APOE.pm";
你的我的$plugin\u name=@ARGV;将在运行时运行,对于lib来说已经太晚了。根据需要,使用lib列表;几乎相等

BEGIN { unshift(@INC, LIST) }
但是您的$plugin_名称在当时不可用

但是,您可以使用require替换您的使用,如下所示:

my ($plugin_name) = @ARGV;
require "/usr/share/perl/5.10.1/$plugin_name/APOE.pm";

你可以简单地写:

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";

你可以简单地写:

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";

您是否尝试过使用lib$plugin_name;?是的,我检查了路径。用APOE代替APOE.pm怎么样?我假设APOE.pm位于/usr/share/perl/5.10.1/的子目录中,称为APOE。如果不是,请尝试将其放入子目录。是否要重命名没有pm扩展名的文件?我不知道你的意思。哦。否该子目录名为AIB-TorrentPanel-v2.00No。如果APOE.pm直接位于/usr/share/perl/5.10.1/下,请尝试将其放入名为/usr/share/perl/5.10.1/APOE的子目录中。然后用APOE调用脚本。您是否尝试过使用lib$plugin_name;?是的,我检查了路径。用APOE代替APOE.pm怎么样?我假设APOE.pm位于/usr/share/perl/5.10.1/的子目录中,称为APOE。如果不是,请尝试将其放入子目录。是否要重命名没有pm扩展名的文件?我不知道你的意思。哦。否该子目录名为AIB-TorrentPanel-v2.00No。如果APOE.pm直接位于/usr/share/perl/5.10.1/下,请尝试将其放入名为/usr/share/perl/5.10.1/APOE的子目录中。用APOE调用你的脚本。