Reducir código
Publicado:
2014-05-22 18:38 @818
por BigBear
Hola. Tengo el siguiente código:
Using perl Syntax Highlighting
#!usr/bin/perl
my $texto = "hola mundo chau";
$texto=~s/a/1/;
$texto=~s/b/2/;
$texto=~s/c/3/;
$texto=~s/d/4/;
print $texto;
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
La pregunta es si habría la forma de reducir 4 líneas de sustitución para que quede solo una línea.
¿ Se puede hacer ?
Re: Reducir código
Publicado:
2014-05-22 18:44 @822
por explorer
El comando tr/// (transliteración) es el recomendado, en estos casos.
Using perl Syntax Highlighting
$texto = "hola mundo chau";
$texto =~ tr/abcd/1234/;
say $texto;
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Re: Reducir código
Publicado:
2014-05-23 11:11 @508
por BigBear
explorer, ¿cómo hago para agregar 'ig' al final de la sustitución para que pueda detectar también las mayúsculas en tu
script de ejemplo?
Using perl Syntax Highlighting
$texto = "hola mundo chau";
$texto =~ tr/abcd/1234/ig;
say $texto;
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
¿ Cómo lo hago ?
Re: Reducir código
Publicado:
2014-05-23 12:52 @577
por explorer
tr/// no tiene modificadores iguales a los del operador de sustitución o coincidencia.
No necesitas el modificador /g, porque tr/// hace la transliteración por toda la cadena.
Si quieres contemplar el caso de las mayúsculas, te vale con ponerlas:
$texto =~ tr/abcdABCD/12341234/;
Otra opción posible sería pasar antes el $texto a minúsculas, con lc(), y aplicar la primera transliteración.