Cómo hacer un array de hash
![Nota Nota](https://perlenespanol.com/foro/styles/prosilver/imageset/icon_post_target.gif)
Resulta que hoy me levante mal... y se me olvidó mucho de lo poco que sabía de Perl. Ahora mi problema es hacer una función que me retorne un array de hash. El nombre de los campos los tengo en un array y son los que serán las Key y el valor lo tengo en otro array que serán los valores para los KEYS para lo que tengo:
Me retorna algo así
No, ya me mamé con eso. No sé qué pudo pasarme pero no le dí. Gracias por ayudarme y perdón por molestar tanto.
Using perl Syntax Highlighting
my %dats;
$registros[0] = "5||22junio.jpg||tumb005.jpg||1||22||06||2008";
$registros[1] = "5||22mayo.jpg||tumb005.jpg||1||22||05||2008";
$registros[2] = "5||22marzo.jpg||tumb005.jpg||1||22||03||2008";
@campo = qw(ID nombre imagen categoria dia mes anno); #Estos campos pueden variar
#organizar un array de hash
my $cantidad_campos = @campo;
foreach $reg(@registros){
@campos_reg = split(/\|\|/, $reg);
for ($i=0;$i<=$cantidad_campos;$i++){
$dats{$campo[$i]} = $campos_reg[$i];
#%dats={$campo[$i] => "$campos_reg[$i]"};
#$dats->{$campo[$i]} = $campos_reg[$i];
}
push (@registros_salida,\%dats);
}
return @registros_salida;
$registros[0] = "5||22junio.jpg||tumb005.jpg||1||22||06||2008";
$registros[1] = "5||22mayo.jpg||tumb005.jpg||1||22||05||2008";
$registros[2] = "5||22marzo.jpg||tumb005.jpg||1||22||03||2008";
@campo = qw(ID nombre imagen categoria dia mes anno); #Estos campos pueden variar
#organizar un array de hash
my $cantidad_campos = @campo;
foreach $reg(@registros){
@campos_reg = split(/\|\|/, $reg);
for ($i=0;$i<=$cantidad_campos;$i++){
$dats{$campo[$i]} = $campos_reg[$i];
#%dats={$campo[$i] => "$campos_reg[$i]"};
#$dats->{$campo[$i]} = $campos_reg[$i];
}
push (@registros_salida,\%dats);
}
return @registros_salida;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Me retorna algo así
- Código: Seleccionar todo
$VAR1 = {
'' => undef,
'mes' => '08',
'categoria' => '26',
'dia' => '09',
'id' => '305',
'miniatura' => 'tumb_agosto9punto26.jpg',
'anno
' => '2008
',
'nombre' => 'agosto9punto26.jpg'
};
$VAR2 = $VAR1;
$VAR3 = $VAR1;
$VAR4 = $VAR1;
$VAR5 = $VAR1;
$VAR6 = $VAR1;
$VAR7 = $VAR1;
$VAR8 = $VAR1;
$VAR9 = $VAR1;
$VAR10 = $VAR1;
$VAR11 = $VAR1;
No, ya me mamé con eso. No sé qué pudo pasarme pero no le dí. Gracias por ayudarme y perdón por molestar tanto.