【发布时间】:2012-11-27 21:56:14
【问题描述】:
我的结构看起来像这样(散列):
$VAR1 = {
'Lee2000a' => {
'abstract' => 'Abstract goes here',
'author' => 'Lee, Wenke and Stolfo, Salvatore J'
'title' => 'Data mining approaches for intrusion detection'
'year' => '2000'
},
'Forrest1996' => {
'abstract' => 'Abstract goes here',
'author' => 'Forrest, Stephanie and Hofmeyr, Steven A. and Anil, Somayaji'
'title' => 'Computer immunology'
'year' => '1996'
}
};
我想根据三个条件对这个结构进行排序(按此顺序):
1st - 根据年份值 (1996,2000) 2nd - 根据“外部”(Lee2000a,Forrest1996)结构键 第三 - 根据字母顺序的“内部”结构键(摘要、作者、标题、年份)。
到目前为止,我有两个代码需要以某种方式组合:
我。代码符合第二和第三条标准
for $i (sort keys(%bibliography)){
print "$i => ", "\n";
for $j (sort keys ($bibliography{"$i"})){
print "\t $j -> ", $bibliography{"$i"}{"$j"},"\n";
}
}
二。代码满足第一个条件
for $i (sort { ($bibliography{$a}->{year} || 0) <=> ($bibliography{$b}->{year} || 0) } keys %bibliography){
print "$i => ", "\n";
for $j (sort keys ($bibliography{"$i"})){
print "\t $j -> ", $bibliography{"$i"}{"$j"},"\n";
}
}
非常感谢
【问题讨论】:
-
请原谅我的无知,但是如何做到这一点,作为一个新手我对stackoverflow的概念不是很熟悉?另外,如果您能解释一下某些用户如何在此处粘贴代码,我只看到“添加评论”按钮,该按钮用于添加代码,然后使该代码变得可怕。 (我猜也有 600 个字符的限制)。非常感谢。
-
您可能会发现FAQ 很有帮助,以及从那里链接的额外帮助。不过,具体来说,我看到您已经设法接受答案,这很好。对于粘贴代码,这取决于您为什么需要这样做。但通常,您只能将格式化的代码粘贴到问题或答案中 - 您不能在 cmets 中执行此操作。要正确设置其格式,请单击文本框上方的
{ }按钮以缩进以至少 4 个空格突出显示的所有内容。