0
內使用預先定義的EXPORT_TAGS我已經創建了幾個EXPORT_TAGS我的模塊如下內,出口和EXPORT_OK
package My::Module;
use strict;
use warnings;
require Exporter;
our @ISA = qw (Exporter);
our %EXPORT_TAGS = (
'set1' => [
qw(
&func1
&func2
)
],
'set2' => [
qw(
$var1
$var2
)
],
'set3' => [
qw(
&sub3
&sub4
)
]
);
# remaining module code
我現在想通過簡單地給予申報出口中導出的符號和EXPORT_OK陣列出口標籤,而不是指定每個單獨的一個,
our @EXPORT = $EXPORT_TAGS { 'set2' };
our @EXPORT_OK = (
$EXPORT_TAGS { 'set1' },
$EXPORT_TAGS { 'set3' }
);
在我的目標腳本,我調用我的模塊如下,
use My::Module qw (:set1 :set3);
該模塊編譯沒有錯誤。然而,目標腳本不和我收到以下錯誤,當我嘗試使用屬於該模塊的變量/功能,
Global symbol "$var1"
需要name`
我缺少/俯瞰明確的包?謝謝您的幫助。
謝謝!這適用於子程序,但由於某種原因,當我嘗試訪問模塊變量時,即使它們已在模塊中聲明和定義,我也會收到變量未初始化的錯誤。這可能是什麼原因? –
明白了,我使用'my'而不是'our',所以這些值沒有與我的目標腳本共享。 –