哈希表排序

哈希表排序

while (($sum_fun, $sum_file) = each %sum_less) {
                print $sum_fun;
                print $sum_file."\n\n";
        }
有一个哈希表%sum_less,用上面的语句打印出它下面格式的内容。请问如何根据第一行前面的数字对两行一组的数据排序?

4: static void init_lro_mgr(struct sge_qset *qs, struct net_lro_mgr *lro_mgr)
in: linux-2.6/drivers/net/cxgb3/sge.c

14: static void ixgb_alloc_rx_buffers(struct ixgb_adapter *adapter, int cleaned_count)
in: linux-2.6/drivers/net/ixgb/ixgb_main.c

23: static int s2io_poll_msix(struct napi_struct *napi, int budget)
in: linux-2.6/drivers/net/s2io.c

67: static bool e1000_clean_rx_irq(struct e1000_adapter *adapter, int *work_done, int work_to_do)
in: linux-2.6/drivers/net/e1000e/netdev.c

61: static int rts_ds_steer(struct s2io_nic *nic, u8 ds_codepoint, u8 ring)
in: linux-2.6/drivers/net/s2io.c

62: static int __devinit s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
in: linux-2.6/drivers/net/s2io.c

81: static void wl3501_get_from_wla(struct wl3501_card *this, u16 src, void *dest, int size)
in: linux-2.6/drivers/net/wireless/wl3501_cs.c

18: static bool e1000_clean_tx_irq(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring)
in: linux-2.6/drivers/net/e1000/e1000_main.c

37: static void s2io_set_multicast(struct net_device *dev)
in: linux-2.6/drivers/net/s2io.c


[Copy to clipboard] [ - ]
CODE:
for my $key ( sort { $a <=> $b } keys %sum_less) {
  print $key, "\n", $sum_less{$key}, "\n";
}

另外, 楼主的函数都是用perl 分析出来的吗? 用了哪些模块和技术

谢谢,完美解决。

我是用正则表达式匹配整个注释加函数头,然后再进一步的细化的匹配来提取出注释部分和函数头部分。目的是想找出注释中参数个数和实际参数不一致的函数。