2011-03-09 2 views
1

에 정렬에서 펄 해시를 금지 :이 명령으로 펄에서 내가 해시를 생성 생성

% 열 = ("ID", 10, "시간", 25, "클러스터", 25 "형", 10, "Hostname", 30, "Service", 25, "Comment", 50);

어떤 식 으로든 수정 된 정렬 순서는 원하지 않습니다. 그러나 Perl은 나를 위해 그들을 정렬하기 위해 자체적으로 그것을 취했습니다.

$VAR1 = 'ID'; 
$VAR2 = 10; 
$VAR3 = 'Hostname'; 
$VAR4 = 30; 
$VAR5 = 'Type'; 
$VAR6 = 10; 
$VAR7 = 'Time'; 
$VAR8 = 25; 
$VAR9 = 'Comment'; 
$VAR10 = 50; 
$VAR11 = 'Cluster'; 
$VAR12 = 25; 
$VAR13 = 'Service'; 
$VAR14 = 25; 

이 동작을 어떻게 피할 수 있습니까?

는 해결 :

tie(%{$monstatus_settings{"comments"}->{"columns"}}, "Tie::IxHash", "ID" => 10, "Time" => 25, "Cluster" => 25, "Type" => 10, "Hostname" => 30, "Service" => 25, "Comment" => 50); 

답변

0

당신은 할 수 없습니다. 해시는 명시 적으로 순서가 지정되지 않습니다 (실제로 키의 계산 된 해시에 따라 정렬되므로 해시 임). 순서를 유지하려면 목록을 사용하십시오. 또는 둘 모두를 사용할 수 있습니다. 목록은 해시 키의 정렬 된 목록입니다.

관련 문제