/ / Perl: какво е включено в употребата 5. ##. #? - perl, използване

Perl: какво е включено в употребата 5. ##. #? - perl, използване

Видях няколко мнения тази държава use 5.12.0; в Perl разрешава определени функции / прагми по подразбиране (напр. use strict;). Друг пример е в utf-8 и perl където е посочено това use 5.14.0; е

оптимално за Unicode низа функция utf-8.

Изглежда си спомням един наличен use декларация, която предоставя определени неизпълнения (напр. use strict; use warnings; use diagnostics;), но не мога да си спомня спецификата use 5.##.#; твърдение? Например какво прави use 5.22.0; предостави по подразбиране? use strict;? Нещо друго? Благодаря.

Отговори:

10 за отговор № 1

Това е документирано в 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.


2 за отговор № 2

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

  • казвам
  • състояние
  • ключ
  • unicode_strings
  • array_base

Пакетите с функции се документират в feature.pmна документацията.


2 за отговор № 3

За подобрения, които не са обхванати от особеност, можеш да използваш Синтаксис :: Construct.