Spec-Zone.ru › Perl 5.28

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

СОДЕРЖАНИЕ

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

ИМЯ

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

ВЕРСИЯ

версия 0.019

СИНОПСИС

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

ОПИСАНИЕ

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

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

Pragma 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.

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

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

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

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

  • postderef - позволяет использовать постфиксные операторы разыменования, включая интерполируемые строки.

    Это было добавлено в perl 5.20.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.

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

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

use warnings;
use experimental 'smartmatch';

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

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

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

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

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

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

АВТОР

Leon Timmermans <leont@cpan.org>

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

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

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

© 1993–2020 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.28.3/experimental

Spec-Zone.ru

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