을 사용해야합니다. 엄격하게 사용하면 컴파일 문제가 발생합니다. 그렇지 않으면 잘 작동합니다. 나는 속성에 대한 '내'키워드를 배치하려했으나이를 수정하지 않았습니다. 내가 뭘 잘못하고있는거야?전역 심볼 "% 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 => bar, baz => baaz);'한 번에 전체 해시를 지정하지 않는 한 두 줄로 $ hash {foo} = ...'. – TLP