Mostrando entradas con la etiqueta perl5. Mostrar todas las entradas
Mostrando entradas con la etiqueta perl5. Mostrar todas las entradas

7 de septiembre de 2020

Intento explicar Perl 7

Buenas,

a finales de Junio participé en la más reciente conferencia sobre Perl, https://perlconference.us/tpc-2020-cloud . La principal novedad, sobre la que ya twiteé en aquellas fechas, fue el anuncio de una nueva versión de Perl, en concreto Perl7. Han pasado ya dos meses y no hay mucho más que contar, pero parece que podemos ir haciéndonos a la idea de qué significa esto. 

Perl 7 tendrá como punto de partida la última versión de Perl5, en concreto v5.32, publicada en Enero de este año. La principal diferencia es que tendrá por defecto varias características que eran opcionales hasta ahora pero que la comunidad de desarrolladores considera son ya necesarias para modernizar el lenguaje. Éstas siguien en discusión, pero parece que van a incluir las siguientes (mira también estas FAQ):

  • enable strict by default
    • % perl -Mstrict program.pl
  • enable warnings by default
    • % perl -Mwarnings program.pl
  • disable bareword filehandles
    • % perl -M-bareword::filehandles
  • disable multidimensional array emulation (a Perl 4 trick)
    • % perl -M-multidimensional program.pl
  • enable subroutine signatures
    • % perl -Mfeature=signatures program.pl
  • change prototypes to use the :prototype attribute

 

La ley del mínimo esfuerzo

Sólo tendrás que poner use v5.32 al principio de tus scripts.

Qué pasa si no quiero cambiar nada?

Al parecer las versiones v5.30 y v5.32 tendrán soporte unos diez años más, esa es la promesa.

Qué pasa con Perl6 o raku?

Se considera que es tan distinto a Perl que es un lenguaje independiente, que tendrá su propia vida dentro de la familia.

Cuando haya más novedades iré contándolas por aquí, hasta luego,

Bruno

24 de junio de 2020

Conferencia en la nube

Hola,
los próximos 3 días puedes seguir las charlas en torno a los lenguajes Perl y Raku (perl6) en https://tpc20cic.sched.com. Puedes verlas en directo, con la diferencia horaria de EEUU, en https://www.youtube.com/yapcna , o más tarde cuando te venga bien, puesto que serán grabadas, como las de otros años,
hasta luego,
Bruno

1 de marzo de 2018

sustituyendo el operador smartmatch en Perl5

Hola,
tras el anuncio reciente de que la versión 5.28 de Perl5 eliminaría el operador smartmatch ~~ (ver aquí) me he encontrado un programa viejito dónde se usaba, a pesar de que ha sido experimental desde hace mucho tiempo. Con ayuda de

$ perldoc perlop

cuelgo aquí un ejemplo de cómo sustituir este operador por código estándar:

use strict;
use warnings;

my @array = qw( JASPAR footprintDB UNIPROBE );
my %hash  = ( JASPAR => 1, footprintDB => 2, UNIPROBE => 3 );

my $element = 'footprintDB';

# array context
if ($element ~~ @array){
  print "\@array contains element '$element' (smartmatch)\n";
}

if (grep { $element eq $_ } @array){
  print "\@array contains element '$element' (core Perl5)\n";
}

# hash context
if(/$element/ ~~ %hash){
  print "\%hash contains a key matching regex /$element/ (smartmatch)\n";
}

if(grep { /$element/ } keys(%hash)){
  print "\%hash contains a key matching regex /$element/ (core Perl5)\n";
}

Un saludo,
Bruno