elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Perl v5.36, liberado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Perl v5.36, liberado  (Leído 3,036 veces)
explorer

Desconectado Desconectado

Mensajes: 101


Analista/Programador Perl


Ver Perfil
Perl v5.36, liberado
« en: 30 Mayo 2022, 14:13 pm »

Ya tenemos nueva versión de Perl, la v5.36.

Perl 5.36.0 representa aproximadamente un año de desarrollo desde Perl 5.34.0 y contiene aproximadamente 250 000 líneas modificadas a lo largo de 200 archivos por parte de 82 autores.

Excluyendo los archivos autogenerados, documentación y herramientas de publicación, fueron aproximadamente 190 000 líneas modificadas en 1300 archivos .pm, .t, .c y .h.

Las novedades que trae (entre otras):

Cambios principales
  • signatures deja de ser experimental (desde v5.20) y se activa por defecto
Código
  1. use v5.36;
  2. sub add($x, $y) {
  3.    return $x + $y;
  4. }
Pero algunos elementos de las firmas de subrutina aún quedan como experimentales.
  • isa considerado característica estable (desde v5.32), por lo que se activa por defecto. Consultar perlop.
  • se desactivan las características indirect y multidimensional.
    Ya no se puede escribir $x = new Class; ni $x = $hash{3,5,42};
    Consultar feature.
  • la característica experimental switch (desde v5.10) se ha quitado de use v5.36. Se puede seguir usando (no recomendado), pero hay que activarla explícitamente.
  • nueva opción en línea de comandos, -g, es un alias de -0777. Consultar perlrun.
  • soporte para Unicode 14.0.
  • los "conjuntos regex" ya no se consideran experimentales (desde v5.18). Ejemplo: /(?[ ( \p{Thai} + \p{Lao} ) & \p{Digit} ])/
    Esta expresión casa con dígitos que son tanto Thai como Laosianos. Consultar perlrecharclass.
  • los vistazos hacia atrás de longitud variable en patrones de exp. reg. ya no se consideran experimentales. Ahora, en "aaz"=~/(?=z)(?<=(a|aa))/, $1 contendrá "aa" (la coincidencia de mayor longitud).
  • seguimiento estable de los valores booleanos. Ahora, los valores booleanos resultado de expresiones como !!0 y !!1 así como los de los resultados de funciones y operadores incorporados, mantienen su naturaleza como valor booleano. Hay una nueva función, is_bool() que puede servir para comprobar si un valor es booleano.
  • (experimental) iterar sobre múltiples valores al mismo tiempo:
Código
  1. for my ($key, $value) (%hash) { ... }
  2. for my ($left, $right, $gripping) (@moties) { ... }
Consultar perlsyn.
  • (experimental) nuevo módulo builtin.
    Ofrece información y acceso a nuevas funciones o a las nuevas funciones incorporadas experimentales. Las de v5.36 son:
    • builtin::trim Elimina los espacios en blanco que haya al principio y final de la cadena de texto
      · builtin::indexed Devuelve una lista el doble de grande que la lista argumento, con cada elemento precedido por el índice de ese elemento. Esto es útil para recorrer arrays.
    Código
    1. use builtin 'indexed';
    2. foreach my ($index, $val) (indexed @array) {
    • builtin:true, builtin::false, builtin::is_bool Valores de verdad y función para comprobar si un valor es booleano.
    • builtin::weaken, builtin::unweaken, builtin::is_weak Cambio en el tratamiento de referencias a una variable, para ser eliminada o no por el recolector de basura.
    • builtin::blessed, builtin::refaddr, builtin::reftype Más información sobre referencias (incluso si no lo son).
    • builtin::ceil, builtin::floor Redondeo al entero igual o inferior, o al igual o superior del valor dado.
  • (experimental) bloques defer. Definen secciones de código que se ejecutarán durante la salida del ámbito en que se encuentren esos bloques.
    Código
    1. use feature 'defer';
    2. {
    3.    say "This happens first";
    4.    defer {
    5.       say "This happens last";
    6.    }
    7.    say "And this happens inbetween";
    8. }
  • (experimental) try/catch ahora tiene un bloque finally. Proporciona código que se ejecutará al final de la construcción.
  • (experimental) delimitadores no ASCII para entrecomillar. Ahora se podrá escribir $text = qw« hola adios »;
  • (experimental) @_ experimental en firmas de subrutinas. Ejemplo:
    Código
    1. use v5.36;
    2. sub f ($x, $y = 123) {
    3.  say "The first argument is $_[0]";
    4. }
    provocará una advertencia.
Cambios incompatibles
  • un sort vacío (sin argumentos), ahora es un fallo en tiempo de compilación.
    @a = sort;
Obsolescencias
  • use VERSION (con VERSION inferior a 5.11) después de un use v5.11 (rebajar de versión), ahora es obsoleto. Ejemplo:
    Código
    1. use v5.14;
    2. say "say está permitido";
    3. use v5.8;   # genera una advertencia
    4. print "Debemos usar print\n";

      Plataformas obsoletas
      • AT&T UWIN
      • DOS/DJGPP
      • NetWare


    En línea

    Páginas: [1] Ir Arriba Respuesta Imprimir 

    Ir a:  

    Mensajes similares
    Asunto Iniciado por Respuestas Vistas Último mensaje
    Ono digital Liberado
    Electrónica
    espacio 5 4,058 Último mensaje 12 Enero 2007, 21:00 pm
    por hectordepucela
    VLC 1.1, liberado
    Noticias
    wolfbcn 0 1,206 Último mensaje 22 Junio 2010, 13:58 pm
    por wolfbcn
    KDE 4.7 liberado
    Noticias
    wolfbcn 0 1,461 Último mensaje 28 Julio 2011, 22:06 pm
    por wolfbcn
    Liberado Wifiway 3.4
    Noticias
    wolfbcn 2 3,795 Último mensaje 13 Enero 2012, 02:53 am
    por SCU
    [PERL]Busco recomendacion para empezar con Perl
    Scripting
    Ocelot1994 1 2,405 Último mensaje 6 Julio 2016, 10:59 am
    por explorer
    WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines