2014-02-18 2 views
0

DBI 쿼리의 결과를 해시 배열에 넣고이 AoH를 입력으로 사용하여 서브 루틴을 호출했습니다 (다른 AoH가있는 동일한 서브 루틴). AoH의 정확한 크기를 알지 못하기 때문에이를 동적으로 결정하고 싶습니다. AoH에서 필드/열 수를 얻을 수있는 방법이 있습니까?해시 배열 내용 읽기

뭔가가 scalar @inContent과 같지만 가로 크기 만 필요합니다.

실제 크기의 AoH에 따르면, 나는 그것을 반복하고 그 내용을 읽고 싶습니다. 순간 나는 이름으로 필드를 해결하지만, AOH에서 AOH에 따라 다를 수 있으므로 그것은 매우 효과적인 솔루션이 아니다 :

foreach my $row (@inContent) { 
     print $row->{ID}; } 

하지만 그런 걸 좀하고 싶습니다 :

print $row->[0]->value; 

감사를 당신은 사전에 도움을 청합니다.

+1

여기 실제로 묻는 것이 다소 혼란 스럽습니다. 당신이 얻으려고하는 것은 무엇입니까? – tddmonkey

답변

1

배열의 첫 번째 해시 키의 수는

scalar keys %{$inContent[0]} 

이며이 DBI 쿼리이기 때문에 그 나머지는 동일한 키 세트가 있어야합니다, 그래서 "수평 크기의 좋은 척도이다 ".