+ -
当前位置:首页 → 问答吧 → hash排序这样为什么不行。

hash排序这样为什么不行。

时间:2011-02-07

来源:互联网

我将我的hash %pushlog安装year,month,day,hour,minute,time进行排序。部分代码如下
sub mysort
{
  $pushlog{$a}{"year"} <=> $pushlog{$b}{"year"}
  or $pushlog{$a}{"month"} <=> $pushlog{$b}{"month"}
  or $pushlog{$a}{"day"} <=> $pushlog{$b}{"day"}
  or $pushlog{$a}{"hour"} <=> $pushlog{$b}{"hour"}
  or $pushlog{$a}{"minute"} <=> $pushlog{$b}{"minute"}
  or $pushlog{$a}{"time"} <=> $pushlog{$b}{"time"}
};

my @keys=sort mysort (keys %pushlog); //这句不知道为什么不行

my @keys=sort { $pushlog{$a}{"year"} <=> $pushlog{$b}{"year"} or $pushlog{$a}{"month"} <=> $pushlog{$b}{"month"} or $pushlog{$a}{"day"} <=> $pushlog{$b}{"day"} or $pushlog{$a}{"hour"} <=> $pushlog{$b}{"hour"} or $pushlog{$a}{"minute"} <=> $pushlog{$b}{"minute"} or $pushlog{$a}{"time"} <=> $pushlog{$b}{"time"} } keys %pushlog; //这句可以。

上面那句利用比较函数的不知道为什么不行。请指教!

作者: linfengfeiye   发布时间: 2011-02-07

你是不是 %pushlog 在函数 mysort 之后定义的?反正我先定义 %pushlog 用着很正常

作者: zhlong8   发布时间: 2011-02-08