J'ai un tableau et essayé de convertir le contenu du tableau en un hachage avec des clés et des valeurs. L'index 0 est une clé, l'index 1 est une valeur, l'index 2 est une clé, l'index 3 est une valeur, etc.Comment convertir un tableau en hash en Perl?
Mais cela ne produit pas le résultat attendu. Le code est ci-dessous:
open (FILE, "message.xml") || die "Cannot open\n";
$var = <FILE>;
while ($var ne "")
{
chomp ($var);
@temp = split (/[\s\t]\s*/,$var);
push(@array,@temp);
$var = <FILE>;
}
$i = 0;
$num = @array;
while ($i < $num)
{
if (($array[$i] =~ /^\w+/i) || ($array[$i] =~ /\d+/))
{
# print "Matched\n";
# print "\t$array[$i]\n";
push (@new, $array[$i]);
}
$i ++;
}
print "@new\n";
use Tie::IxHash;
tie %hash, "Tie::IxHash";
%hash = map {split ' ', $_, 2} @new;
while ((my $k, my $v) = each %hash)
{
print "\t $k => $v\n";
}
La sortie produite est incorrecte:
name Protocol_discriminator attribute Mandatory type nibble value 7 min 0 max F name Security_header attribute Mandatory type nibble value 778 min 0X00 max 9940486857
name => Security_header
attribute => Mandatory
type => nibble
value => 778
min => 0X00
max => 9940486857
Dans la sortie, vous pouvez voir que le hachage est formé uniquement avec une part, et une autre partie du tableau n'est pas se créer dans le hachage.
Quelqu'un peut-il aider?
En supposant que les données sont stockées sous forme @array clé, valeur, clé, valeur, etc. – Hawk
@Hawk et ses électeurs: S'il vous plaît, prenez votre temps pour lire la question. OP le dit déjà dans sa question. – m0skit0
Merci @Hawk, une note très utile pour ceux d'entre nous qui ne lisent que le titre et sautent immédiatement aux réponses;) – rustyx