• Publicidad

Perl v5.40

Novedades y noticias acerca de todo lo relacionado a Perl.

Perl v5.40

Notapor explorer » 2024-06-11 03:07 @171

Estos son los cambios que trae la versión v5.40.0, del 9 de junio de 2024.

Perl 5.40.0 representa aproximadamente 11 meses de desarrollo desde Perl 5.38.0 y contiene aproximadamente 160 000 líneas modificadas a lo largo de 1500 archivos por parte de 75 autores.

Las novedades que trae (entre otras):

Cambios principales

  • Nuevo identificador __CLASS__
    Ahora, cuando se usa la característica class, en el código de un método, bloque ADJUST o expresión de inicialización de un campo, se permite usar el nuevo identificador __CLASS__. Éste devuelve el nombre de una clase, de forma similar a __PACKAGE__, pero mientras que este último da el nombre del paquete del código en tiempo de compilación, el identificador __CLASS__ tiene en cuenta la clase a la que pertenece la instancia del objeto, en tiempo de ejecución. Esto es útil para el despachado de métodos de esa clase, especialmente en los constructores, donde no se permite el acceso a $self.

    Para más información, consultar "__CLASS__" en perlfunc.
  • Atributo :reader para las variables field
    Mientras se usa la característica class, las variables field pueden tener un atributo :reader. Esto solicita que se cree un método de acceso de forma automática que simplemente retorne el valor de la variable field, desde la instancia indicada.
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
        field $nombre :reader;
    Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

    Es equivalente a
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
        field $nombre;
        method nombre () { return $nombre; }
    Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

    Se puede proporcionar un nombre alternativo:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
        field $nombre :reader(obtener_nombre);
    Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

    Para más detalles ver ":reader" en perlclass.
  • Se permite un espacio en la opción de línea de comandos -M
    Cuando se procesan las opciones en la línea de comandos, perl ahora permite un espacio entre la opción -M y el nombre del módulo que le sigue.
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using bash Syntax Highlighting
    1.     $ perl -M Data::Dumper=Dumper -E 'say Dumper [1,2,3]'
    Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

    Esto coincide con el comportamiento actual de la opción -I.
  • Restricciones en las declaraciones de use VERSIÓN
    En Perl v5.36 se añadió una advertencia de obsolescencia cuando se degrada una declaración use VERSIÓN desde una que esté por encima de la versión 5.11, hacia abajo. Ahora esto se ha convertido en un error fatal.

    Adicionalmente, ahora es un error fatal una posterior declaración use VERSIÓN cuando exista otra en el mismo ámbito, si es una versión 5.39 o superior. Esto es para evitar complicaciones a las funciones léxicas importadas desde builtin. También se añadió una advertencia de obsolescencia para cualquier otra declaración posterior de use VERSION que esté por debajo de la versión 5.39, para avisar que ya no se permitirá en la Perl versión 5.44.
  • Nuevas funciones experimentales builtin::inf y builtin::nan

    Se han añadido dos nuevas funciones, inf y nan, al espacio de nombres builtin. Actúan como constantes que devuelven los valores en punto flotante infinito y Not-a-Number (No es-un-Número), respectivamente.
  • Nuevo operador xor lógico ^^

    Perl siempre ha tenido tres operadores lógicos de baja precedencia: and, or y xor, así como tres versiones binarias de alta precedencia: &, | y ^. Hasta esta versión, mientras que también estaban presentes los operadores lógicos de media precedencia && y ||, no existía un equivalente a or-exclusivo. Esta versión de Perl añade el último operador ^^, completando el conjunto.

    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
        $x ^^ $y and say "Uno de x o y es verdadero, pero no ambos";
    Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

  • La característica try/catch ya no es experimental

    Antes de esta versión, la característica try/catch para el manejo de errores estaba considerada como experimental. Presentada en Perl versión 5.34.0, se considero que era una característica estable del lenguaje y su uso ya no imprimía una advertencia. Se debe seguir activando con la feature 'try'.

    Ver "Manejo de excepciones con Try y Catch" en perlsyn.
  • Iterar múltiples valores con for al mismo tiempo ya no es experimental

    Antes de esta versión, iterar sobre múltiples valores al mismo tiempo se consideró experimental. Presentada en Perl versión 5.36.0, ahora se considera una característica estable del lenguaje y su uso ya no imprime una advertencia. Ver "Sentencias compuestas" en perlsyn.
  • El módulo builtin ya no es experimental

    Antes de esta versión, el módulo builtin y todas sus funciones se consideraban experimentales. Presentadas en Perl versión 5.36.0, este módulo se considera ahora estable y su uso ya no imprime una advertencia. Sin embargo, muchas de sus funciones se siguen considerando experimentales.
  • La feature empaquetada :5.40 añade try

    La última versión de la feature empaquetada contiene ahora la reciente característica estable try. Ya que esta característica empaquetada se usa por la opción -E de línea de comandos, está disponible inmediatamente para los scripts -E.
  • use v5.40; importa las funciones builtin

    Además de la característica empaquetada de feature, use v5.40; (o siguientes versiones) importa la correspondiente versión de builtin empaquetada.


Cambios incompatibles

  • reset EXPRESIÓN ahora llama a set-magic en escalares
    Lo hacía con arrays y hashes, pero no con escalares.
  • Llamar a un método import de un paquete desconocido produce una advertencia
    Ahora, llamar a un código como este genera una advertencia:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
        Clase::Que::No::Existe->import("foo");
    Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
  • return ya no permite un objeto indirecto
    La sintasix del operador return ahora rechaza los objetos indirectos. En la mayor parte de los casos compilaría e incluso se ejecutaría, pero no estaba documentado y podía producir resultados confusos, por ejemplo:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
        # note que "sum" no está definido
        sub sum_positive {
            return sum grep $_ > 0, @_;
            # interpretado inesperadamente como:
            #   return *sum, grep $_ > 0, @_;
            # ... con la palabra suelta actuando como un argumento extra de tipo typeglob
        }
        say for sum_positive(-1, 2, 3)
    Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
    producía:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using text Syntax Highlighting
        *main::sum
        2
        3
    Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
  • Las clases literales ya no se resuelven como manejadores de archivo, en llamadas de método bajo no feature "bareword_filehandles"
    Había un error con la ejecución de no feature "bareword_filehandles". Se permitía hacer esto:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using perl Syntax Highlighting
        open FH, "<", $archivo or die;
        no feature 'bareword_filehandles';
        FH->binmode;
    Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

    Ahora, FH->binmode intentará resolver FH como una clase, resultando típicamente en un error en tiempo de ejecución.

Obsolescencias

  • Usar goto para saltar desde un ámbito externo a un ámbito interno es obsoleto y se eliminará completamente en Perl v5.42

Nuevas plataformas
  • Serenity OS
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Re: Perl v5.40

Notapor MaterazziSan » 2024-06-11 17:15 @760

Muchas gracias Explorer :)
Avatar de Usuario
MaterazziSan
Perlero nuevo
Perlero nuevo
 
Mensajes: 33
Registrado: 2020-08-05 12:17 @553
Ubicación: España


Volver a Noticias de Perl

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado