Spec-Zone.ru › Perl 5.34

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

СОДЕРЖАНИЕ

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

НАЗВАНИЕ

experimental - Экспериментальные функции, которые легко использовать

ВЕРСИЯ

версия 0.024

СИНОПСИС

use experimental 'lexical_subs', 'smartmatch';
my sub foo { $_[0] ~~ 1 }

ОПИСАНИЕ

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

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

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

use experimental 'feature-name';

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

no experimental 'feature-name';

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

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

    Поддерживается во всех версиях Perl.

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

    Добавлена в Perl 5.14.0 и удалена в Perl 5.23.1.

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

    Добавлена в Perl 5.22.0.

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

    Добавлена в Perl 5.22.0.

  • declared_refs - включает алиасирование через присваивание ссылкам

    Добавлена в Perl 5.26.0.

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

    Добавлена в Perl 5.32.0.

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

    Добавлена в Perl 5.10.0 и удалена в Perl 5.23.4.

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

    Добавлена в 5.18.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.

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

    Добавлена в Perl 5.10.0.

  • win32_perlio - позволяет использовать IO-слой :win32.

    Добавлена в Perl 5.22.0.

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

Использование этой конструкции для «включения экспериментальной функции» — это ещё один способ сказать, что эта конструкция отключит предупреждения, которые возникнут при использовании этой функции. Поэтому порядок применения конструкций важен. В частности, вы, вероятно, захотите включить экспериментальные функции *после* включения предупреждений:

use warnings;
use experimental 'smartmatch';

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

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

Отказ от ответственности

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

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

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

АВТОР

Leon Timmermans <leont@cpan.org>

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

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

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

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

Spec-Zone.ru

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