2015-07-06 11 views
8

Ho visto più posts che lo stato use 5.12.0; in Perl abilita alcune funzionalità/direttive di default (ad es., use strict;). Un altro esempio è UTF-8 and perl cui si afferma che use 5.14.0; èPerl: cosa è incluso in uso 5. ##. #?

ottimale per Unicode caratteristica stringa UTF-8 manipolazione.

Mi sembra di ricordare una dichiarazione di use disponibile, che fornisce alcuni valori di default (ad esempio, use strict; use warnings; use diagnostics;), ma non ricordo i dettagli. Come si può scoprire cosa è incluso in una determinata istruzione use 5.##.#;? Ad esempio, che cosa fornisce use 5.22.0; come impostazione predefinita? use strict;? Qualunque altra cosa? Grazie.

risposta

10

Questo è documentato in perldoc feature:

È possibile caricare più funzioni insieme, utilizzando un fascio funzione. Il nome di un bundle di funzioni è preceduto da due punti, per distinguerlo da una funzione reale.

use feature ":5.10"; 

alle seguenti funzioni bundle sono disponibili:

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 

dove

use v5.10.0; 

farà un implicito

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

e così via.

abilitazione automatica delle stenosi è documentato in perldoc -f use:

se la versione Perl specificata è maggiore o uguale a 5.12.0, stenosi sono abilitati lessicalmente come con use strict.

+0

Perfetto. Questo e 'esattamente quello che stavo cercando. Mi stavo immaginando, o c'è qualche sottoinsieme 'feature' che include: stenografia, avvertimenti e diagnostica tutto in una volta?Grazie – secJ

+0

Per quanto ne so, non c'è nulla nel core che lo faccia, ma potrebbero esserci dei moduli che lo fanno. Forse stai pensando a [Modern :: Perl] (https://metacpan.org/pod/Modern::Perl), che abilita, tra le altre cose, 'strict',' warnings' e tutte le funzionalità 5.10. – ThisSuitIsBlackNot

+0

Ah, sì, è tutto! Moderna :: Perl. Grazie ancora – secJ

2

use 5.12.0; fa use feature ':5.12';, in modo da ottenere

  • dicono
  • stato
  • interruttore
  • unicode_strings
  • array_base

La fea i pacchetti sono documentati nella documentazione di feature.pm.

+0

Grazie per il link alla documentazione di features.pm. Grande risorsa da tenere segnalibro – secJ