我有兩個文件,下面的文件是 「Packages_module.pl」,混亂在perl軟件包
use pack_modules;
$var = 1;
print "var is $var\n";
&pack_module::check_scope($var);
print "var is $var\n";
第二個文件是 「pack_modules.pm」,代碼是下面
package pack_module;
use Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/$var/;
our ($var);
sub check_scope
{
$var = 3;
}
1;
當我運行pack_modules.pm我得到了以下結果。
var is 1
==========
Using Module Subroutine:
var is 1
==========
第一次,很明顯,「$ VAR」將是1,但它再給予1而不是3,第二次可以在任何一個可以告訴我爲什麼「pack_module」的價值是不可見在「Packages_module」中。
你沒有出口'$ var',但'$ var2'。你也可以看看'$ pack_module :: var'來測試你的假設。 「check_scope」的參數被忽略。 (哦,請不要寫小寫模塊,或者用'&調用subs。) – amon
@amon我錯誤地給了$ var2 $ var。無論如何,我已經編輯它,但仍然是給出相同的輸出。 –