perl – 如何通过其中一个哈希值对哈希引用数组进行排序?
发布时间:2020-12-15 21:58:51 所属栏目:大数据 来源:网络整理
导读:首先,请原谅我生锈的Perl.我正在尝试修改Bugzilla的“whine.pl”以生成按严重性排序的错误列表. 所以它给了我一个哈希引用数组.每个哈希都包含一系列有关特定错误(id,受让人,严重性等)的信息.我想按严重程度对数组进行排序.最好的方法是什么? 我想出了几个
首先,请原谅我生锈的Perl.我正在尝试修改Bugzilla的“whine.pl”以生成按严重性排序的错误列表.
所以它给了我一个哈希引用数组.每个哈希都包含一系列有关特定错误(id,受让人,严重性等)的信息.我想按严重程度对数组进行排序.最好的方法是什么? 我想出了几个可能性.一种是创建五个数组(每个严重级别一个),然后遍历数组并将哈希引用推送到适当的严重性级别数组.在此之后,我可以重新组装它们并用已排序的数组替换原始数组. 我的朋友提出的另一种方法是将严重性级别(存储为散列中的文本)分配给某些nubmers,然后cmp它们.也许是这样的? sub getVal { my $entry = $_[0]; %lookup = ( "critical" => 0,... ); return $lookup(entry("bug_severity")); } @sorted = sort { getVal($a) <=> getVal($b) } @unsorted; 解决方法
我喜欢你提出的解决方案:
my %sevs = (critical => 0,high => 1,...); my @sorted = sort { $sevs{$a->{bug_severity}} <=> $sevs{$b->{bug_severity}} } @unsorted (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |