当我使用严格的,我得到下面的编译问题,否则它工作正常。我试图将“我的”关键字放在属性中,但这并没有解决它。我做错了什么?全局符号“%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