perl에서는 해시로 작업 할 수 있습니다 (예 : my %a = (2, "two");
뿐만 아니라 해시 참조 (예 : my $b = {2 => "two"};
펄에서 hashref가 아닌 해시를 사용할 수 있습니까?
다차원 해시를 만들 때마다 최상위 해시 값은 항상 해시 레프입니다. 즉, ref()
을 호출하면 "HASH"
을 반환합니다. 추가 수준의 간접 지정없이 단순한 해시 해시를 가질 수 있습니까? 해시의 해시 펄 아이 해시의 요소를 액세스 할 때 하나의 참조 연산자를 생략 할 수 있도록하여 작업시 부가 적
:
my %a;
$a{2} = {2 => "two"};
# the following are both valid:
$a{2}->{2}
$a{2}{2}
I 번째 단지 문법적 첫번째위한 가정 . 그러나 이 유효한 반면에 $b{2}
은 유효하지 않으므로 단순 중첩되지 않은 해시 참조에 필요한 구문과 일치하지 않는 것으로 보입니다.
for my %hash (values %a) {
또는
for my %hash (map(%{$_}, values %a)) {
하지만이 두 가지를 말할 수 있었으면한다는 것입니다
는 "누락 $ 루프 변수에"오류의 원인이 컴파일 시간.
제목 만 대답하면됩니다. 불가능합니다. 귀하의 질문은 더 길고 통찰력있는 답변을받을 자격이 있습니다. . . –
"내 % $ 해시 (값 % a) {"가 목표를 달성해야합니다. – Casao
@Casao : 아니요, 그건 잘못되었습니다. Perl 루프 변수는 스칼라 여야합니다. – Borodin