gpt4 book ai didi

Perl 排序在数值上无法按预期工作

转载 作者:行者123 更新时间:2023-12-01 06:04:39 27 4
gpt4 key购买 nike

我被这个难住了,显然缺少一些基本的东西。似乎 perl sort 不适用于特定的值集。下面是部分测试代码:

    use strict;

my $i = 7;
my $j = 8;
my $k = 4;

print "before:$i:$j:$k\n";
my @p = ($i, $j, $k);
($i, $j, $k) = sort(@p);
print "after:$i:$j:$k\n";

print "######################################\n";


my $i = 23;
my $j = 24;
my $k = 7;

print "before:$i:$j:$k\n";
my @p = ($i, $j, $k);
($i, $j, $k) = sort(@p);
print "after:$i:$j:$k\n";

print "######################################\n";

如您所见,它在输入值为 (7:8:4) 时起作用。当值为 (23:24:7) 时似乎不起作用!

before:7:8:4
after:4:7:8
######################################
before:23:24:7
after:23:24:7
######################################

最佳答案

默认情况下,sort将按词法排序。所以 23 和 24 出现在 7 之前,原因与字典中 bc 和 bd 出现在 g 之前相同。

sort {$a <=> $b} @p将产生数字排序。

http://perldoc.perl.org/functions/sort.html了解更多信息。

关于Perl 排序在数值上无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18476280/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com