먼저이 문제는 상당히 일반적인 문제입니다.하지만 주변을 둘러 보았고 그 이유가 무엇인지 정확히 알 수는 없습니다."strict refs"가 사용 중일 때 문자열을 HASH ref로 사용할 수 없습니다
나는 JSON
파일에서 읽는 데이터가 있으며, 기본적으로 모든 것은 ID를 나타내는 문자열 집합입니다.
my $idFile='IDS.json';
my $idJSON;
{
local $/;
open my $fh, '<', $idFile or die $!;
$idJSON = <$fh>;
close $fh;
}
my $id_array = decode_json $idJSON;
이 지금처럼 $id_array
는 모습입니다 :
나는과 같이 가져 그때 해시 맵의 형태로 MISC
태그로 저장할
$VAR1 = [
'3233',
'2758',
'2797'
];
하지만,이 내 "Can't use string ("3233") as a HASH ref while "strict refs" in use "
오류가 발생하는 곳 :
my @decodedIDS = map { $_ ->{MISC}} @{$id_array};
누구에게이 오류의 원인에 대한 제안이 있습니까? 언제나처럼 어떤 도움이라도 대단히 감사하겠습니다.
난 당신이 뭘 하려는지 분명 해요을 ... 당신은'@decodedIDS를 원하는 것을 설명해 수 있습니다 '포함 할까? – ThisSuitIsBlackNot
"MISC 태그를 해시 맵의 형태로 저장합니다."... 그러면 어쩌면 당신은'@decodedIDS = map {MISC => $ _} @ {$ id_array}'라고 말할 것입니까? – mob
해시가 아닙니다. @mob. 'my % decodedIDS = map {$ _ => 1} @ $ id_array; '는 id로 키 해시를 생성합니다. – ikegami