• Publicidad

Crear hash

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Crear hash

Notapor lis » 2011-06-06 01:50 @118

Hola amigos del foro. Quiero pedirles su ayuda con lo siguiente: tengo una carpeta con muchos archivos con extensión .dat a los que llamo así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. while($data=</home/lis/Escritorio/QS/2006_01/*.dat>){
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

y lo que quiero es crear un hash en donde la clave sea el nombre del archivo y su valor sea el número de posición pero que comience a partir del segundo archivo, me explico: si tengo los siguientes archivos

    uno.dat
    dos.dat
    tres.dat
    cuatro.dat
    cinco.dat

el hash sea así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my %hash = qw(dos.dat 2 tres.dat 3 cuatro.dat 4 cinco.dat 5);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
y así hasta el último archivo.

De antemano les agradezco muchísimo a todos los que me ayuden.

Lis.
lis
Perlero nuevo
Perlero nuevo
 
Mensajes: 106
Registrado: 2008-05-27 21:43 @946

Publicidad

Re: Crear hash

Notapor explorer » 2011-06-06 04:29 @228

Hola, lis. Se trata de una operación poco común, pero bueno.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my %hash;
  2. my $i = 0;
  3.  
  4. while ($data = </home/lis/Escritorio/QS/2006_01/*.dat>) {
  5.  
  6.     if ($i) {
  7.         $hash{$data} = $i+1;
  8.     }
  9.  
  10.     $i++;
  11. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Otra forma de hacerlo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. @ficheros = </home/lis/Escritorio/QS/2006_01/*.dat>;    # lista de ficheros
  2. shift @ficheros;                                        # quitamos el primer fichero
  3. $i = 2;                                                 # contador
  4. %ficheros = map { $_ => $i++  } @ficheros;              # creamos el hash, incrementando el contador
  5.  
  6. use Data::Dumper;                                       # comprobación
  7. say Dumper(\%ficheros);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Crear hash

Notapor lis » 2011-06-06 11:32 @522

¡¡Excelente Explorer!! Muchas gracias.
lis
Perlero nuevo
Perlero nuevo
 
Mensajes: 106
Registrado: 2008-05-27 21:43 @946


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 0 invitados

cron