$, = ' '; print sort {$a-$b} qw/1.5 2.5 2 1/;
制作1.5 1 2.5 2
。我知道<=>
,我只是想知道发生了什么,以及是否记录了这种行为。
即使这不起作用:
$, = ' '; print(sort{(sqrt$a)-(sqrt$b)} qw/1.5 2.5 2 1/);
与$a
和$b
magick有关,就好像它们被评估为字符串一样。 OTOH,整数列表使用-
而不是<=>
正确排序。
答案 0 :(得分:9)
来自Perl documentation
如果指定了SUBNAME,则它会给出一个子程序的名称,该子程序返回小于,等于或大于0的整数,具体取决于列表元素的排序方式。
如果您将-
与floats
一起使用,则会返回float
结果,而不是上述integer
的结果。