Spec-Zone.ru › Perl 5.38

экспериментальный

СОДЕРЖАНИЕ

  • НАЗВАНИЕ
  • ВЕРСИЯ
  • СИНОПСИС
  • ОПИСАНИЕ
    • Порядок важен
    • Оговорка
  • СМОТРИТЕ ТАКЖЕ
  • АВТОР
  • АВТОРСКИЕ ПРАВА И ЛИЦЕНЗИЯ

НАЗВАНИЕ

experimental - Экспериментальные возможности сделаны простыми

ВЕРСИЯ

версия 0.031

СИНОПСИС

use experimental 'lexical_subs', 'signatures';
my sub plus_one($value) { $value + 1 }

ОПИСАНИЕ

Данный pragma предоставляет простой и удобный способ включения или отключения экспериментальных возможностей.

В каждой версии Perl присутствует определённое количество возможностей, но рассматриваются как "экспериментальные". В течение большей части жизни Perl 5, это было только обозначение, найденное в документации. Начиная с Perl v5.10.0, и более активно в v5.18.0, экспериментальные возможности были помещены за pragmata, используемые для включения функции и отключения связанных предупреждений.

Pragma experimental существует для объединения необходимых заклинаний в единый интерфейс, стабильный в различных выпусках Perl. Для каждой экспериментальной возможности это должно включать функцию и молчать предупреждения для вложенной лексической области:

use experimental 'feature-name';

Для отключения функции и, при необходимости, повторного включения любых предупреждений, используйте:

no experimental 'feature-name';

Поддерживаемые функции, более подробно описанные ниже, включают:

  • args_array_with_signatures - разрешить использование @_ в подпрограммах с параметрами.

    Это поддерживается в perl 5.20.0 и выше, но, вероятно, будет удалено в будущем.

  • array_base - разрешить использование $[ для изменения начального индекса @array.

    Это было удалено в perl 5.30.0.

  • autoderef - разрешить push, each, keys и другие встроенные функции для ссылок.

    Это было добавлено в perl 5.14.0 и удалено в perl 5.24.0.

  • bitwise - разрешить новые побитовые операторы для строк

    Это было добавлено в perl 5.22.0.

  • builtin - разрешить использование функций в пространстве имён builtin::

    Это было добавлено в perl 5.36.0

  • const_attr - разрешить атрибут :const для подпрограмм

    Это было добавлено в perl 5.22.0.

  • declared_refs - разрешает алиасирование путём присваивания ссылок

    Это было добавлено в perl 5.26.0.

  • defer - разрешает использование блоков defer

    Это было добавлено в perl 5.36.0

  • extra_paired_delimiters - разрешает использование большего количества парных строковых разделителей, чем традиционных четырёх, < >, ( ), { } и [ ].

    Это было добавлено в perl 5.36.

  • for_list - разрешает итерацию по нескольким значениям одновременно с for

    Это было добавлено в perl 5.36.0

  • isa - разрешает использование инфиксного оператора isa

    Это было добавлено в perl 5.32.0.

  • lexical_topic - разрешает использование лексических $_ через my $_.

    Это было добавлено в perl 5.10.0 и удалено в perl 5.24.0.

  • lexical_subs - разрешает использование лексических подпрограмм.

    Это было добавлено в 5.18.0, а затем стало неэкспериментальным (и всегда включенным) в 5.26.0.

  • postderef - разрешает использование постфиксных выражений обращения к ссылкам

    Это было добавлено в perl 5.20.0 и стало неэкспериментальным (и всегда включенным) в 5.24.0.

  • postderef_qq - разрешает использование постфиксных выражений обращения к ссылкам внутри интерполируемых строк

    Это было добавлено в perl 5.20.0 и стало неэкспериментальным (и всегда включенным) в 5.24.0.

  • re_strict - включает строгий режим в регулярных выражениях

    Это было добавлено в perl 5.22.0.

  • refaliasing - разрешает алиасирование с помощью \$x = \$y

    Это было добавлено в perl 5.22.0.

  • regex_sets - разрешает расширенные символьные классы в скобках в регулярных выражениях

    Это было добавлено в perl 5.18.0.

  • signatures - разрешает подпрограммы с параметрами (для именованных аргументов)

    Это было добавлено в perl 5.20.0.

  • smartmatch - разрешает использование ~~

    Это было добавлено в perl 5.10.0, но следует отметить, что существуют значительные несовместимости между 5.10.0 и 5.10.1.

    Функция будет устаревшей в perl 5.38.0 и удалена в 5.42.0.

  • switch - разрешает использование ~~, given и when

    Это было добавлено в perl 5.10.0.

    Функция будет устаревшей в perl 5.38.0 и удалена в 5.42.0.

  • try - разрешает использование try и catch

    Это было добавлено в perl 5.34.0

  • win32_perlio - разрешает использование слоя ввода-вывода :win32.

    Это было добавлено в perl 5.22.0.

Порядок важен

Использование этого pragma для 'включения экспериментальной функции' - это другой способ сказать, что этот pragma отключит предупреждения, которые возникнут при использовании этой функции. Поэтому порядок применения pragmata важен. В частности, вы, вероятно, захотите включить экспериментальные функции *после* включения предупреждений:

use warnings;
use experimental 'smartmatch';

Вы также должны позаботиться о модулях, которые включают предупреждения для вас. Типичным примером является Moose. В этом примере, предупреждения для функции 'smartmatch' сначала включаются с помощью pragma warnings, отключаются pragma experimental и снова включаются модулем Moose (исправление заключается в перестановке последних двух строк):

use warnings;
use experimental 'smartmatch';
use Moose;

Оговорка

Из-за характера активируемых функций, совместимость в будущем не гарантируется никоим образом.

СМОТРИТЕ ТАКЖЕ

perlexperiment содержит дополнительную информацию об экспериментальных функциях.

АВТОР

Leon Timmermans <leont@cpan.org>

АВТОРСКИЕ ПРАВА И ЛИЦЕНЗИЯ

Данное программное обеспечение является авторским правом (c) 2013 г. Leon Timmermans.

Это свободное программное обеспечение; вы можете перераспределять его и/или изменять его в соответствии с условиями системы языка программирования Perl 5.

© 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/experimental

Spec-Zone.ru

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