2015-07-06 2 views
8

Я видел несколько posts, что состояние use 5.12.0; в Perl позволяет использовать определенные функции/прагмы по умолчанию (например, use strict;). Другим примером может служить в UTF-8 and perl, где говорится, что use 5.14.0; являетсяPerl: что включено в употребление 5. ##. #?

оптимальны для Unicode строка особенность UTF-8 обработки.

Я припоминаю, доступную use декларации, которая обеспечивает определенные значения по умолчанию (например, use strict; use warnings; use diagnostics;), но не могу вспомнить специфику. Как узнать, что включено в задание use 5.##.#;? Например, что делает use 5.22.0; по умолчанию? use strict;? Что-нибудь еще? Благодарю.

ответ

10

Это отражено в perldoc feature:

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

use feature ":5.10"; 

Следующие пакеты особенность доступны:

bundle features included 
--------- ----------------- 
:default array_base 
:5.10  say state switch array_base 
:5.12  say state switch unicode_strings array_base 
:5.14  say state switch unicode_strings array_base 
:5.16  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 
:5.18  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 
:5.20  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 
:5.22  say state switch unicode_strings 
      unicode_eval evalbytes current_sub fc 

где

use v5.10.0; 

сделает неявный

no feature ':all'; 
use feature ':5.10'; 

и так далее.

Автоматическое включение стриктур документирована в perldoc -f use:

, если указанная версия Perl больше или равна 5.12.0, стриктуры включены лексически, как с use strict.

+0

Perfect. Это именно то, что я искал. Представлял ли я это, или есть какое-то подмножество 'feature ', которое включает в себя: стриктуры, предупреждения и диагностику за один раз?Спасибо – secJ

+0

Насколько я знаю, в этом нет ничего, что могло бы сделать это, но, возможно, есть модули, которые это делают. Возможно, вы думаете о [Modern :: Perl] (https://metacpan.org/pod/Modern::Perl), который включает, помимо прочего, функции 'strict',' warnings' и все 5.10. – ThisSuitIsBlackNot

+0

А, да, вот и все! Современный :: Perl. Еще раз спасибо – secJ

2

use 5.12.0; делает use feature ':5.12';, так что вы получите

  • говорят
  • состояние
  • переключатель
  • unicode_strings
  • array_base

ВЭД в документах feature.pm.

+0

Спасибо за ссылку на документацию features.pm. Отличный ресурс, чтобы сохранить закладки – secJ

 Смежные вопросы

  • Нет связанных вопросов^_^