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, так как это соответствует тому, что мы фактически реализовали.
© 1993–2021 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.36.0/sort