배열에 $#
을 사용하는 것과 같이 해시에서 키 수를 찾는 방법은 무엇입니까?Perl에서 해시에있는 키 수를 찾는 방법은 무엇입니까?
답변
scalar keys %hash
하거나
keys %hash
당신은 스칼라 문맥에서 이미 있다면, 예를 들어, my $hash_count = keys %hash
또는 print 'bighash' if keys %hash > 1000
.
덧붙여 말하면 $#array
은 요소 수를 찾지 못하고 마지막 인덱스를 찾습니다. scalar @array
은 요소 수를 찾습니다.
우리가 하나 적은을 반환이 너무
my $keys = keys(%r) ;
print "keys = $keys" ;
0+(keys %r)
배열에있는 원소의 수를 알려줍니다. – joe
다음과 같이 사용할 수 있습니다 귀하의 해시 키의 수. 당신이 일 (또는 간결을) 수행의 $#array
스타일을 좋아하면 당신은 그것을 좋아하는 수
$#{$hash};
CRITICAL 편집 :이 재미있다 ...에
보류. 배열 참조로 사용하려면 작동하지만 외부에서는 사용하지 않는 경우 작동합니다. 당신이 임시로 배열로 키를 할당 한 것을 제공, 당신의 해시의 마지막 키에 액세스 할 경우에 따라서는 유용 :
%hash = ("barney" => "dinosaur", "elmo" => "monster");
@array = sort {$a cmp $b} keys %hash;
print $array[$#{$hash}];
# prints "elmo"
이 대답은 저를 놀라게 했으므로 그것을 시도하고 ...작동하지 않습니다. – dave4420
@Dave : 위의 중요한 편집을 확인하십시오. 머리를 가져 주셔서 감사합니다. – Zaid
@ Zaid :'$ # {$ hash} '를'-1'로 대체하십시오. '$ array [-1]'은 항상'@ array'의 마지막 요소를 의미합니다 (그리고'$ array [-2]'는 항상 두번째부터 마지막까지를 의미합니다). '$ hash '는'% hash'와 관련이 없습니다. 귀하의 코드에서 Perl은 정의되지 않은 변수를 배열 참조로 사용하므로 배열 참조라고 가정합니다. '경고를 사용하십시오; 엄격한;을 사용하고 처음에는 perl이 말한 것을보십시오. – dave4420
을하지만 펄 5.10 이후 :이 체크 아웃
use feature ":5.10";
my %p =();
say $#%p;
# $# is no longer supported
악화 :
use feature ":5.10";
my %p = (a=>1, b=>2, c=>3);
say $#{%p};
# -1
이 쉬운 방법과 해시의 크기에 작동합니다.
인쇄 스칼라 키 % hash;
죄송하지만 ... 'print'를 사용하는 것 외에 7 년 전 게시 된 무겁게 upvoted, accepted 대답과 어떻게 다른가요? –
인쇄 스칼라 키 % hash;
OR
$ X = keys % hash; 인쇄 $ X;
(키 % 해시 스칼라 문맥에 추가 변경은 (스칼라 변수에 할당 목록 맥락에서 키의 값을 반환) .)
- 1. 현재 NSMutableDictionary에있는 키 수를 찾는 방법이 있습니까?
- 2. SPFolder에서 항목 수를 찾는 방법은 무엇입니까?
- 3. Perl에서 유니 코드 문자열의 길이를 찾는 방법은 무엇입니까?
- 4. 특정 클래스 JQuery로 Div 수를 찾는 방법은 무엇입니까?
- 5. 객관적인 c에있는 문서 파일의 총 페이지 수를 찾는 방법은 무엇입니까?
- 6. UILabel이 보유 할 수있는 문자 수를 찾는 방법은 무엇입니까?
- 7. MS Word 문서에서 강조 표시된 덩어리의 수를 찾는 방법은 무엇입니까?
- 8. sql을 사용하여 문자열에서 특정 문자의 발생 수를 찾는 방법은 무엇입니까?
- 9. LINQ to SQL에서 영향을받는 행 수를 찾는 방법은 무엇입니까?
- 10. Tomcat 서버에서 실행되는 웹 사이트 수를 찾는 방법은 무엇입니까?
- 11. SQLite로 N 번째 백분위 수를 찾는 방법은 무엇입니까?
- 12. 테이블 이름이 변수에있을 때 테이블의 행 수를 찾는 방법은 무엇입니까?
- 13. 프로세스가 Solaris에서 사용하는 스레드 수를 찾는 방법은 무엇입니까?
- 14. Activemq 브로커에 대한 총 연결 수를 찾는 방법은 무엇입니까?
- 15. 테이블에서 각 외래 키 ID의 인스턴스 수를 계산하는 방법은 무엇입니까?
- 16. Perl에서 대체 횟수를 반환하는 방법은 무엇입니까?
- 17. 초당 바이트 수를 찾는 방법
- 18. 사용법의 수를 자동으로 찾는 방법?
- 19. 메모리 액세스 수를 찾는 방법
- 20. Perl에서 날짜를 비교하는 방법은 무엇입니까?
- 21. 중첩 된 TClientDataSet에서 "외래 키"필드 이름을 찾는 방법은 무엇입니까?
- 22. 특정 행의 외래 키 종속성을 찾는 방법은 무엇입니까?
- 23. URL (또는 다른 키)을 사용하여 SiteMapNode를 찾는 방법은 무엇입니까?
- 24. Xpath를 찾는 방법은 무엇입니까?
- 25. 내년을 찾는 방법은 무엇입니까?
- 26. userclick을 찾는 방법은 무엇입니까?
- 27. d.android.com에서 찾는 방법은 무엇입니까?
- 28. 사전 항목 수를 효과적으로 줄이는 방법은 무엇입니까?
- 29. NSString에서 대문자 수를 계산하는 방법은 무엇입니까?
- 30. 수를 레일 수 찾기 호출 수를
$ # + 1 - 우리는 요소의 어떤을 얻을 것이다. 나는 $ #을 의미하고있다. # – joe
아하이오. 글쎄, 나는'$ array + 1 '에 여전히'scalar @ array'를 추천 할 것이다. :) – chaos
거기에 어떤 특별한 이유가있다. – joe