Firmas de subrutinas
Lo más llamativo. Es difícil de darse cuenta de lo importante que es esto. Se acabó el código feo en la asignación. Con v5.20 puedes escribirlo así:
Using perl Syntax Highlighting
- use feature 'signatures';
- sub eco_habitacion ($sonido) {
- return $sonido;
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Desreferencia postfija
La siguiente, nueva y fresca característica es la desreferencia postfija. Difícil de describir pero fácil de mostrar:
Using perl Syntax Highlighting
- use experimental 'postderef';
- my $array_anidado_ref = [[[[[1,2,3]]]]];
- # desreferencia circunfija - la forma normal
- push @{$array_anidado_ref->[0]->[0]->[0]->[0]}, 4;
- # desreferencia postfija - la nueva forma
- push $array_anidado_ref->[0]->[0]->[0]->[0]->@*, 5;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Porciones hash
Perl 5.20 trae un nuevo tipo de porciones: las porciones hash. Funcionan de forma similar a las porciones array, excepto que los datos "partidos" son pares completos de claves/valor en lugar de solo los valores, como el caso de las porciones array.
Using perl Syntax Highlighting
- my %gotas = ( splish => 4, splash => 9, splosh => 7 );
- my %porcion_hash = %gotas{ 'splish', 'splosh'};
- # porcion_hash es (splish => 4, splosh => 7)
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Incluso más divertivo, es usar porción hash en un array, resultando en un hash que tiene los índices de los elementos como las claves del hash:
Using perl Syntax Highlighting
- my @tipos_gotas = qw/splish splash splosh/;
- my %porcion_hash = %tipos_gotas[0, 2];
- # porcion_hash es (0 => 'splish', 2 => 'splosh')
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Android
Sí, ya se puede compilar perl en Android, en las tres arquitecturas conocidas.
Mejoras en las prestaciones
La documentación en perldelta lista 17 mejoras, incluyendo exp. reg. más rápidas, búsqueda de claves hash y copias de cadenas de caracteres (copy-on-write).
Miscelánea
Los prototipos de subrutinas se pueden declarar como un atributo, "prototype". Por ejemplo:
Using perl Syntax Highlighting
- # prototipo normal
- sub ejemplo ($$) {}
- # prototipo declarado vía atributo
- sub ejemplo :prototype($$) {}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Instalación más rápida en Windows: 15 minutos menos ahorrados gracias a la corrección de un error en el "make test".
Perl v5.20 usa la última versión de Unicode, la v6.3.
La función rand() usa ahora un generador independiente de la plataforma.
Obsolescencias
CGI y sus módulos asociados serán eliminados de la distribución principal. Se recomienda el uso alternativo de alguno de los entornos de trabajo web existentes: Catalyst, Dancer, Mojolicious, Web::Simple, etc. Pero sobre todo que soporte el estándar PSGI.
Module::Build también será eliminado.