您的位置:首页 > 数据库

perl高级排序中遇到的一个问题

2012-02-27 15:00 239 查看
由于工程需要,我要对数据库中所有设备名称按ascii码顺序出excel报表,因为跟其他数据一起存在一个哈希结构中,所以我要用到高级排序。

sub by_DEVICE_NAME (){
$ItemValue->{$a}{'DEVICENAME'} <=> $ItemValue->{$b}{'DEVICENAME'};

}

我的本意是按 ascii 字符排序,结果却非我所愿,根本就不排序,


后来,翻出《perl 入门》,果断改成

sub by_DEVICE_NAME (){
$ItemValue->{$a}{'DEVICENAME'} cmp $ItemValue->{$b}{'DEVICENAME'};

}

看出区别了吧?

字符比较用 cmp ,数字比较用 <=>。

记下来当是一个教训,基础知识还得看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  perl excel 数据库 报表