首页 文章

为什么这个perl排序不能按预期工作?

提问于
浏览
0

我首先计算数组中的键数 . 当“vectranet”项目的数量超过9时,排序无法正常工作 - “vectranet”不是排序列表中的第一个(我按哈希值排序),这是我的代码,请帮助我,我会发疯:-)这个表格告诉我,我的帖子主要是代码,我应该提供更多细节,但我不能再写任何文字我解释了一切,我需要附上这个巨大的数组,让你看看我的问题是什么:(

@cprov=(
'vectranet.pl',
'airmax.pl',
'mm.pl',
'aduro.pl',
'lss.net.pl',
'multiplay.pl',
'vectranet.pl',
'vectranet.pl',
'vectranet.pl',
'vectranet.pl',
'vectranet.pl',
'inetia.pl',
'orange.pl',
'orange.pl',
'proneteus.pl',
'zicom.pl',
'zicom.pl',
'ac1-nat13.pl',
'sownet.pl',
't-mobile.pl',
't-mobile.pl',
't-mobile.pl',
'multiplay.pl',
'multiplay.pl',
'cyfrowypolsat.pl',
'plus.pl',
'vectranet.pl',
'vectranet.pl',
'centertel.pl',
'centertel.pl',
'centertel.pl',
'play-internet.pl',
'centertel.pl',
'plus.pl',
'cyfrowypolsat.pl',
'play-internet.pl',
'centertel.pl',
'satfilm.com.pl',
'odramedia.pl',
'netia.com.pl',
'espol.com.pl',
'netia.com.pl',
'tpnet.pl',
'tpnet.pl',
'tpnet.pl',
'tpnet.pl',
'vectranet.pl',
'vectranet.pl',
'tktelekom.pl',
'tktelekom.pl',
'sitel.net.pl',
'inter-sat.pl',
'mm.pl',
'mm.pl',
'chello.pl',
'chello.pl',
'chello.pl',
'chello.pl',
'chello.pl',
'net-system.pl',
'vectranet.pl',
'krosoft.pl',
'artcom.pl',
'play-internet.pl',
'protonet.pl',
'plus.pl',
'tpnet.pl'
);

my %pcounts;
$pcounts{$_}++ for @cprov;

for my $key ( sort { $pcounts{$b} cmp $pcounts{$a} } keys %pcounts ) {
    print "$key - $pcounts{$key}\n";
}

1 回答

  • 3

    在词法上进行比较时, 10 出现在 2 之前,就像 bac 之前 . 您想要以数字方式进行比较,因此请使用 <=> 而不是 cmp .

相关问题