sort - Perl 實用程式用於控制 sort() 行為
sort 實用程式現在是 no-op,不建議使用。以下三個操作有效,但沒有作用
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+ 中指定其中任何一個,它將會 croak。
預設排序自 v5.8.0 以來一直很穩定,並且在近二十年的時間裡一直保持這種一致的行為,每個人都假設穩定性。
穩定性將保持預設 - 因此不需要實用程式讓程式碼選擇穩定性「以防」這會改變 - 它不會改變。
我們預計不會再提供多種一般用途排序的實作 - 因此未來不需要提供實用程式在它們之間進行選擇。
如果您知道您非常關心排序的效能,且對您的使用案例和資料來說,值得研究其他替代方案,有可能從我們的預設值中找出一個更好的替代方案,而且切換的成本是值得的,那麼您就比我們了解得更多。我們能提供的任何選擇可能都不如您自己實作的好。(例如,基數排序可以比 O(n log n) 更快,但無法用於所有金鑰,而且有較大的開銷。)
我們不反對變更排序演算法,但我們不認為提供兩個通用實作的選擇有什麼好處。
函式 sort::current()
用於回報排序語用的目前狀態。這個函式並未匯出,而且 CPAN 中沒有呼叫它的程式碼。它現在已不建議使用,而且預設會發出警告。
由於我們不再儲存任何排序「狀態」,它無法再回傳正確的值,所以它將永遠回傳字串 stable
,因為這與我們實際實作的內容一致。