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
No hay comentarios:
Publicar un comentario