當我使用嚴格的,我得到下面的編譯問題,否則它工作正常。我試圖將「我的」關鍵字放在屬性中,但這並沒有解決它。我做錯了什麼?全局符號「%properties」需要明確的包名
#Read properties file
open(F, 'properties')
or die "properties file is missing in current directory. Error: $!\n";
while (<F>) {
next if (/^\#/);
(my $name, my $val) = m/(\w+)\s*=(.+)/;
my $properties{ trim($name) } = trim($val);
}
close(F);
my $current_host = $properties{host_server};
my $token = $properties{server_token};
my $state = 'success';
my $monitor_freq = $properties{monitor_frequency};
錯誤
syntax error at Q:/IDE/Eclipse_Workspace/ICEFaces/Server_Client_Mon/Server_Client_Mon.pl line 22, near "$properties{ "
Global symbol "$val" requires explicit package name at Q:/IDE/Eclipse_Workspace/ICEFaces/Server_Client_Mon/Server_Client_Mon.pl line 22.
Global symbol "%properties" requires explicit package name at Q:/IDE/Eclipse_Workspace/ICEFaces/Server_Client_Mon/Server_Client_Mon.pl line 25.
Global symbol "%properties" requires explicit package name at Q:/IDE/Eclipse_Workspace/ICEFaces/Server_Client_Mon/Server_Client_Mon.pl line 26.
Global symbol "%properties" requires explicit package name at Q:/IDE/Eclipse_Workspace/ICEFaces/Server_Client_Mon/Server_Client_Mon.pl line 28.
Global symbol "%properties" requires explicit package name at Q:/IDE/Eclipse_Workspace/ICEFaces/Server_Client_Mon/Server_Client_Mon.pl line 32.
變量的聲明中無法分配到一個哈希鍵。你必須始終執行'my%hash; $ hash {foo} = ...'分成兩行,除非你一次賦值整個散列:'my%hash =(foo => bar,baz => baaz);'。 – TLP