• Publicidad

Simplificar eliminación espacios en valores hash

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Simplificar eliminación espacios en valores hash

Notapor danimera » 2013-11-29 08:55 @413

Hola, ¿podría resumir esta función en Perl?

Es para eliminar los espacios al final de cada elemento de un hash

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. foreach my $key(keys %$dataF){
  2.         $dataF->{$key} =~ s/\s+$//g;
  3. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Quería dentro de un map{}, o si ya hay alguna expresión algo más rápida para hacerlo o por lo menos en una sola línea de código o más automatizada...

Es que eso procesará como cien mil registros dentro de un bloque, y los hash pueden contener N número de llaves...
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Publicidad

Re: Simplificar eliminación espacios en valores hash

Notapor explorer » 2013-11-29 10:39 @485

Puedes aplicar un map de forma directa, porque values() devuelve los valores del hash en forma de alias, así que cualquier modificación de esos valores se traduce en la modificación de los valores del hash.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use feature 'say';
  3. use Data::Dumper;
  4.  
  5. %x = (a => "1  ", b => "a  ", c => "%    ");
  6. say Dumper \%x;
  7.  
  8. map { s/\s+$// } values %x;
  9.  
  10. say Dumper \%x;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Si los valores son números, se puede cambiar la expresión regular por un sencillo "0 + $_".

Más información en perldoc -f values
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

Re: Simplificar eliminación espacios en valores hash

Notapor danimera » 2013-11-29 12:02 @543

Gracias, explorer, me funcionó perfecto. Yo había intentado algo así, pero no tuve en cuenta de usar el término values() antes del hash ¡¡ Gracias !!
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados