Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么';排序{$a-$b}(浮动列表)和#x27;不';你不能用Perl吗?_Perl_Sorting - Fatal编程技术网

为什么';排序{$a-$b}(浮动列表)和#x27;不';你不能用Perl吗?

为什么';排序{$a-$b}(浮动列表)和#x27;不';你不能用Perl吗?,perl,sorting,Perl,Sorting,产生1.512.52。我知道,我只是想知道发生了什么,以及这种行为是否有文档记录 即使这样也不行: $, = ' '; print sort {$a-$b} qw/1.5 2.5 2 1/; 与$a和$bmagick有关的内容,就好像它们是作为字符串计算的一样。OTOH,整数列表使用-而不是Perl中的正确排序 如果指定了SUBNAME,它将给出返回小于、等于或大于0的整数的子例程的名称,具体取决于列表元素的排序方式 如果将-与浮点数一起使用,它将返回一个浮点数结果,而不是上面要求的整数。我不

产生
1.512.52
。我知道
,我只是想知道发生了什么,以及这种行为是否有文档记录

即使这样也不行:

$, = ' '; print sort {$a-$b} qw/1.5 2.5 2 1/;
$a
$b
magick有关的内容,就好像它们是作为字符串计算的一样。OTOH,整数列表使用
-
而不是Perl中的

正确排序

如果指定了SUBNAME,它将给出返回小于、等于或大于0的整数的子例程的名称,具体取决于列表元素的排序方式


如果将
-
浮点数一起使用,它将返回一个
浮点数
结果,而不是上面要求的
整数

我不太明白为什么您认为它会起作用。它适用于整数,并保存了几次击键。在多次使用之后,我错误地认为任何负值或正值都可以。当它不适用于浮点数时,我扭曲的推理得出结论,
$a
$b
在减法之前以某种方式计算为整数(或字符串)。我真傻。不管怎样,由于巴尔马的回答,它现在被清除了;打印排序{10*$a-10*$b}qw/1.52.52/给出
1 1.5 2.5
$, = ' '; print(sort{(sqrt$a)-(sqrt$b)} qw/1.5 2.5 2 1/);