Spec-Zone.ru › Perl 5.38

sort

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНТАКСИС
  • ОПИСАНИЕ
  • ЗАМЕЧАНИЯ

ИМЯ

sort - pragma Perl для управления поведением sort()

СИНТАКСИС

Pragma sort теперь является бесполезной операцией, и его использование не рекомендуется. Эти три операции допустимы, но не имеют эффекта:

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

ОПИСАНИЕ

Исторически, pragma sort позволяло управлять поведением встроенной функции sort().

До версии v5.28.0 существовало еще две опции:

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

Если вы попытаетесь указать одну из этих опций в версии v5.28+, это вызовет ошибку.

По умолчанию сортировка стабильна начиная с версии v5.8.0, и учитывая эту последовательную работу в течение почти двух десятилетий, все привыкли к стабильности.

Стабильность останется по умолчанию, поэтому нет необходимости в pragma для выбора стабильности «на всякий случай» — это не изменится.

Мы не ожидаем возвращения к нескольким реализациям сортировки общего назначения, поэтому в будущем нет необходимости предоставлять pragma для выбора между ними.

Если вам действительно важно производительность вашей сортировки и для вашего случая использования и ваших данных стоит изучить альтернативы, возможно, найти альтернативу нашей по умолчанию, которая лучше, и стоимость переключения того стоит, значит вы знаете больше, чем мы. Вероятно, любые варианты, которые мы можем предложить, не так хороши, как реализация собственной сортировки. (Например, сортировка по разрядам может быть быстрее, чем O(n log n), но не может использоваться для всех ключей и имеет большие накладные расходы.)

Мы не против изменения алгоритма сортировки, но не видим преимущества в предложении выбора между двумя реализациями сортировки общего назначения.

ЗАМЕЧАНИЯ

Функция sort::current() предоставлялась для отчета о текущем состоянии pragmata сортировки. Эта функция не была экспортирована, и нет кода для ее вызова в CPAN. Сейчас она устарела и будет предупреждать по умолчанию.

Поскольку мы больше не храним какое-либо «состояние» сортировки, она больше не может возвращать правильное значение, поэтому она всегда возвращает строку stable, так как это согласуется с тем, что мы на самом деле реализовали.

© 1993–2023 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.38.0/sort

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API