News: Perl 5.20.0 freigegeben

Software::Entwicklung

Perl 5.20.0 freigegeben

Die neue Version 5.20 von Perl bringt den Anwendern Unicode 6.3 und eine Android-Portierung.

Nach einem Jahr Entwicklung hat die Perl Foundation Perl 5.20.0 freigegeben. Wie die Perl-Entwickler im Jahr 2011 nochmals bekräftigt hatten, gibt es auf absehbare Zeit jedes Jahr im Frühjahr eine neue Version von Perl 5. Es wird keine Ablösung von Perl 5 durch Perl 6 geben, da Perl 6 trotz der Namensähnlichkeit längst als vollständig neue Sprache angesehen wird.

Gegenüber Perl 5.20 wurden in der neuen Version nach Angaben der Entwickler Änderungen an über 470.000 Codezeilen vorgenommen, an denen 124 Autoren beteiligt waren. Das sind noch etwas mehr als bei der letzten Version.

Perl 5.20 bringt zunächst in experimenteller Form Signaturen für Funktionen. Bisher müssen in der Deklaration von Funktionen keine Parameter angegeben werden; die tatsächlich übergebenen Parameter sind über eine Array-Variable zugänglich. Wer die neue Funktionalität nutzt, muss stattdessen die Argumente deklarieren und kann direkt über deren Namen auf sie zugreifen.

Prototyp-Deklarationen für Funktionen existieren dagegen schon länger, ermöglichen aber nur, die Anzahl der Funktionsparameter anzugeben, nicht ihre Namen. Mit dem neuen prototype-Attribut existiert nun eine explizitere Syntax dafür. Außerdem wurde das Parsen der Prototyp-Deklarationen konsistenter gemacht.

Der Zufallsgenerator ist nun eine interne Implementation von Perl, was für eine konsistente Qualität der Zahlen über alle Plattformen hinweg sorgen soll. Zuvor wurden teils nur 15 Bit lange Zufallszahlen (Windows) verwendet. Trotz der nun zur Verfügung stehenden 48 Bit warnen die Entwickler aber ausdrücklich, dass der Zufallsgenerator für kryptografische Funktionen nicht sicher genug ist.

Die Syntax, Ausschnitte (Slices) aus Arrays oder Hash-Tabellen zurückzuliefern, wurde um eine Variante erweitert, die Paare aus Index und Wert (oder Schlüssel und Wert) zurückliefert. Eine andere Erweiterung, die nur verfügbar ist, wenn man sie explizit auswählt, ist das Dereferenzieren mit einer Postfix-Syntax. Die Unicode-Unterstützung wurde auf Version 6.3 angehoben.

Die 64-Bit-Unterstützung wurde verbessert, so dass Arrays nun eine Größe von 2 Milliarden Elementen übersteigen dürfen, und reguläre Ausdrücke auf Strings mit mehr als 2 Milliarden Zeichen angewandt werden können. Die Direktive use locale unterstützt jetzt auch UTF-8 und kann auf Systemen angewandt werden, die keine Locales unterstützen. Auf letzteren muss man allerdings bei der Standard-Locale (»C«) bleiben. Als weitere Verbesserung versucht Perl beim Start nun mehr Methoden, die richtige, in Umgebungsvariablen oder Systemeinstellungen festgelegte Locale zu finden.

Darüber hinaus gab es zahlreiche weitere Verbesserungen, Optimierungen und Aktualisierungen, die man in den Anmerkungen zur Veröffentlichung im Detail nachlesen kann. Einige rare Konstrukte wurden in inkompatibler Weise geändert, und die seit mehr als einem Jahrzehnt obsolete Möglichkeit, Funktionen mit do aufzurufen, wurde entfernt.

Einige weitere Module wurden aus der Kern-Distribution von Perl entfernt, sie können stattdessen über CPAN installiert werden. Die Anzahl der über CPAN verfügbaren zusätzlichen Module dagegen steigt ständig. Laut CPAN sind es über 29.600 Modul-Distributionen mit über 133.000 Modulen. Neue unterstützte Plattformen sind Android,
Bitrig, FreeMiNT und das abgespeckte Linux-System von Synology. Dagegen wurde die Unterstützung für DG/UX, ATT 3b1 und sfio entfernt, und die Unterstützung für EBCDIC-basierte Plattformen soll in der nächsten Version verschwinden. Perl 5.20 ist über CPAN oder von perl.org herunterzuladen.

Article source: http://www.pro-linux.de/news/1/21130/perl-5200-freigegeben.html

No Comments - Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>