Frage Warum verwendet Perl nicht standardmäßig die neueste Version?


Wenn ich versuche, neue Perl-Funktionen zu verwenden (wie "say" statt "print"), schlägt der Code fehl, bis ich die Zeile "use 5.014;" und dann läuft alles.

Meine installierte Version von Perl ist 5.14.2, und es sieht so aus, als wäre es die einzige Binärdatei, die ich installiert habe. Warum werden die neuen Funktionen nicht standardmäßig verwendet?

Vielen Dank!


4
2018-01-17 23:11


Ursprung




Antworten:


Neue Funktionen in Perl sind aus Gründen der Abwärtskompatibilität standardmäßig nicht aktiviert.

Von perdoc.perl.org:

Dies ist oft nützlich, wenn Sie die aktuelle Perl-Version überprüfen müssen, bevor Sie Bibliotheksmodule verwenden, die nicht mit älteren Perl-Versionen funktionieren. (Wir versuchen das nicht mehr zu tun als wir müssen.)

Wenn die angegebene Perl-Version größer oder gleich 5.9.5 ist, lädt VERSION außerdem das Feature-Pragma und aktiviert alle in der angeforderten Version verfügbaren Funktionen. Sehen Feature.

Wenn die angegebene Perl-Version größer oder gleich 5.11.0 ist, werden Strictures lexikalisch wie bei use strict aktiviert (mit der Ausnahme, dass die Datei strict.pm nicht tatsächlich geladen ist).

Eine neuere Perl-Version wurde noch nicht für 12.04, 12.10 oder 13.10 genehmigt / committed. Siehe die Haupt-Ubuntu-Seite für Perl Hier. Es sieht jedoch so aus als wäre es etwas Aktivität mit der Arbeit vorwärts mit Perl 5.17.

Sie könnten von der Quelle installieren, aber ich würde nicht empfehlen, die System-Perl-Installation zu übernehmen. Stattdessen würde ich empfehlen, eine Sandkastenversion mit zu installieren PerlBrew.


4
2018-01-21 01:17