sort 也可能指代函数:sort

内容

名称

sort - perl 语言特性用于控制 sort() 函数的行为

语法

sort 语言特性现在是一个空操作,不建议使用。以下三种操作有效,但没有效果

use sort 'stable';		# guarantee stability
use sort 'defaults';	# revert to default behavior
no  sort 'stable';		# stability not important

描述

历史上,sort 语言特性可以控制内置 sort() 函数的行为。

在 v5.28.0 之前,还有另外两个选项

use sort '_mergesort';
use sort '_qsort';		# or '_quicksort'

如果您在 v5.28+ 中尝试指定这两个选项中的任何一个,它将抛出错误。

默认排序从 v5.8.0 开始一直是稳定的,并且考虑到近二十年来的一致行为,每个人都开始假设稳定性。

稳定性将保持为默认值 - 因此代码不需要使用语言特性来选择稳定性,以防万一它会发生变化 - 它不会。

我们预计不会回到提供多种通用排序实现 - 因此将来不需要提供语言特性来在它们之间进行选择。

如果您知道您非常关心排序的性能,并且对于您的用例和数据来说,值得调查替代方案,也许可以从我们的默认值中识别出更好的替代方案,并且切换的成本是值得的,那么您比我们知道的更多。我们可能提供的任何选择都不如实现您自己的好。(例如,基数排序可能比 O(n log n) 快,但不能用于所有键并且开销更大。)

我们不反对更改排序算法,但我们没有看到提供两种通用实现选择的益处。

注意事项

函数sort::current()用于报告排序语法的当前状态。此函数未导出,并且CPAN上没有调用它的代码。现在已弃用,默认情况下将发出警告。

由于我们不再存储任何排序“状态”,因此它不再能返回正确的值,因此它将始终返回字符串stable,因为这与我们实际实现的内容一致。