2015-07-06 9 views
8

Ich habe mehrere posts gesehen, dass der Status use 5.12.0; in Perl bestimmte Funktionen/Pragmas standardmäßig aktiviert (z. B. use strict;). Ein weiteres Beispiel ist in UTF-8 and perl, wo es heißt, dass use 5.14.0; istPerl: Was ist im Lieferumfang enthalten? 5. ##. #?

optimal für Unicode-String-Funktion UTF-8 Handhabung.

Ich scheine eine verfügbare use Erklärung zu erinnern, die bestimmte Standardwerte liefert (zum Beispiel use strict; use warnings; use diagnostics;), aber die Einzelheiten nicht mehr erinnern kann. Wie findet man heraus, was in einer gegebenen use 5.##.#; Aussage enthalten ist? Zum Beispiel, was bietet use 5.22.0; standardmäßig? use strict;? Noch etwas? Vielen Dank.

Antwort

10

Dies ist in perldoc feature dokumentiert:

Es ist möglich, zusammen mehr Funktionen zu laden, ein Feature-Bundle verwenden. Der Name eines Feature-Bundles wird mit einem Doppelpunkt vorangestellt, um ihn von einem tatsächlichen Feature zu unterscheiden.

use feature ":5.10"; 

Folgende Feature-Bundles stehen zur Verfügung:

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 

wo

use v5.10.0; 

wird eine implizite

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

und so weiter.

Automatische von Stenosen ermöglicht wird in perldoc -f use dokumentiert:

, wenn die angegebene Perl-Version größer oder gleich 5.12.0, sind Verengungen aktiviert lexikalisch als mit use strict.

+0

Perfekt. Genau das habe ich gesucht. Habe ich mir das vorgestellt, oder gibt es eine Feature-Untermenge, die Strikturen, Warnungen und Diagnosen auf einmal enthält?Danke – secJ

+0

Soweit ich weiß, gibt es nichts im Kern, das das tut, aber es könnte sicherlich Module geben, die es tun. Vielleicht denkst du an [Modern :: Perl] (https://metacpan.org/pod/Modern::Perl), was unter anderem 'strict',' warnings' und alle 5.10-Features ermöglicht. – ThisSuitIsBlackNot

+0

Ah, ja, das war's! Modern :: Perl. Nochmals vielen Dank – secJ

2

use 5.12.0; tut use feature ':5.12';, so erhalten Sie

  • sagen
  • Zustand
  • Schalter
  • UNICODE_STRINGs
  • array_base

Die fea Die Bündel sind in der Dokumentation feature.pm dokumentiert.

+0

Danke für den Link zur Dokumentation von features.pm. Große Ressource, um Lesezeichen zu behalten – secJ

Verwandte Themen