禁止在创建时排序perl哈希

时间:2011-03-09 21:17:04

标签: hyperlink

我使用此命令在perl中创建了一个哈希:

%columns =(“ID”,10,“时间”,25,“群集”,25,“类型”,10,“主机名”,30,“服务”,25,“评论”,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);

1 个答案:

答案 0 :(得分:0)

你做不到。哈希是明确无序的(实际上,由键的计算哈希排序;这就是它们为哈希的原因)。如果要保留订单,请使用列表。或者使用两者,列表是散列键的有序列表。