아무도 내가 여기서 잘못하고있는 것을 말할 수 있습니까? 배열/해시 유형 및 정렬 쿼리의 모든 가능한 조합에 대해 생각해 볼 수 있고 작동하도록 할 수없는 것처럼 보입니다.해시의 해시 또는 해시 배열의 해시 값으로 Perl 정렬
내가 value1
아래의 해시 심판 분류하는 것을 시도하고있다 : 이런 종류의 루프 사용
my $test = {
'1' => { 'value1' => '0.001000', 'value2' => 'red'},
'2' => { 'value1' => '0.005000', 'value2' => 'blue'},
'3' => { 'value1' => '0.002000', 'value2' => 'green'},
'7' => { 'value1' => '0.002243', 'value2' => 'violet'},
'9' => { 'value1' => '0.001005', 'value2' => 'yellow'},
'20' => { 'value1' => '0.0010200', 'value2' => 'purple'}
};
을 :
를 내가 얻을 :
key: 1 value: 0.001000
key: 3 value: 0.002000
key: 7 value: 0.002243
key: 9 value: 0.001005
key: 2 value: 0.005000
key: 20 value: 0.0010200
내가 함께 시도 정수와 같은 일이 일어나는 것 같습니다.
실제로 해시를 반복 할 필요가 없습니다. 나중에 사용하기 위해 주문하기 만하면됩니다. 그 해쉬 배열로하기 쉽지만, 해시 해시로는 안됩니다 ..?
Re. "실제로 해시를 반복 할 필요가 없습니다. 단지 나중에 사용하도록 주문했기 때문입니다." 해시를 정렬 할 수 없습니다. 특정 순서로 키를 반복 할 수 있지만 해시 자체는 정렬되지 않습니다. – ThisSuitIsBlackNot
감사! 그것이 내가 궁극적으로 찾고 있던 대답이었습니다. 위로 배열로 ... 다음 배열을 정렬하는 것이 더 빨리 가정합니다. 해시를 정렬 할 때마다 사용할 때마다 내 현재의 경우 초당 여러 번 사용하는 것이 좋습니다 (새 해시를 만들 수 있다고 생각합니다. 키). – someuser
다시 해시를 정렬 할 수 없습니다. 정렬 된 키 목록을 배열에 저장하고이를 사용하여 해시를 반복하는 데 사용하는 순서를 설정할 수 있지만 해시에서 요소를 추가하거나 제거하지 않는 경우에만 작동합니다. 'my @ sorted = sort keys % hash; for (@sorted) {...}' – ThisSuitIsBlackNot