$HoA{teletubbies} = [ "tinky winky", "dipsy", "laa-laa", "po" ];
arrayref (s)의 해시에서 요소 수를 어떻게 확인할 수 있습니까? 4를 반환해야합니다.배열 참조의 해시 요소 수를 어떻게 알 수 있습니까?
$HoA{teletubbies} = [ "tinky winky", "dipsy", "laa-laa", "po" ];
arrayref (s)의 해시에서 요소 수를 어떻게 확인할 수 있습니까? 4를 반환해야합니다.배열 참조의 해시 요소 수를 어떻게 알 수 있습니까?
기술적으로 배열의 해시가 아닙니다. 그것은 배열 참조의 해시입니다. 따라서 배열을 길이로 변환하려면 @{...}
연산자와 (선택적으로) 강제 스칼라 컨텍스트로 역 참조해야합니다.
배열의 크기를 스칼라 컨텍스트로 평가하여 Perl로 얻을 수 있습니다.
예, 당신은 명시 적으로 같이이 작업을 수행 할 수 있습니다
my $size = scalar @{$HoA{teletubbies}};
그러나 당신은 또한이 경우에 암시 적으로 수행 할 수 있습니다
my $size = @{$HoA{teletubbies}};
그리고이되는 펄은 또한 다음과 같이 그것을 할 수 :
my $size = $#{$HoA{teletubbies}} + 1;
(#
연산자는 배열의 마지막 색인을 반환하므로 하나의 t o 그것은 당신에게 그것의 크기를 줄 것이다).
마지막 하나는 여분의 일로 한 눈에 읽을 수 있습니다. 경우에 따라 '더 많은 방법'을 통해 검색 할 이유가 없습니다. – Telemachus
5.10에서도 마지막 항목이 사용되지 않습니다. – sebthebert
'$ #'는'$ ['의 값에 따라 달라집니다. –
당신은 단지 그것을 조금 더 추가 한 후 전체 해시를 수행 할 경우
my $size= 0 ;
foreach (values %HoA) { $size += @$_ }
의 필수 언급 http://perlmonks.org/?node=References+quick+reference – ysth
perldsc 및 perllol "해시 배열 배열", "배열 배열"등의 명명법을 사용하십시오. '% HoA'를 쓰는 사람은 아마 perldsc를 읽었을 것입니다. 나는 그것을 싫어하지만, 싸우는 것은 너무 큽니다.) – hobbs