所以,我通過require
加載模塊時遇到了問題。 我們有一個工作目錄。程序加載一個PACKAGE(粗體不要讓你感到困惑)(這是可以的 - 感謝正確的和本地的命名空間),但它必須從非常不同的目錄加載另一個模塊。所以,正如我所聽到的,它應該在BEGIN
區塊內未被轉移到@INC
。但是......這個開始應該採用一個參數(目前來自初始程序),其中包含一些配置文件的路徑,其中包含我需要的參數(模塊的路徑,我需要不移位)。Perl,不需要@INC動態模塊
BEGIN
inited,我檢查@INC - 不移位似乎是成功的。然後,在PACKAGE方法,我們需要加載這個模塊,但是當我嘗試做這樣的事情:
eval{
print STDERR "Trying...\n";
my $path = "path/to/module"; # contains "DIR" dir and "Module.pm",
# also tried to write this path as "path/to/module/DIR/Module.pm"
require $path;
DIR::Module->import();
print STDERR "Success\n";
1;
} or {print STDERR "Failed\n";}
my $module = DIR::Module->new();
我總覺得「嘗試..」和「失敗」。嘗試完整路徑use lib
- 什麼也沒有。我究竟做錯了什麼?
我需要加載運行('require')。所以:在我目前的情況下,'$ path'是從根目錄到模塊的完整路徑。即使在這種情況下我們是否需要使用RealBin?而且我應該DIR :: Module-> import()來使用它的方法嗎? – genesi5
我還需要在初始progarmm中使用它的方法,所以,我認爲我需要導入,但我有命名空間問題 – genesi5
如果它們是方法(即,如果它們被稱爲'$ class-> method'或$ object - > method'),它們沒有意義出口。 – ikegami