Comment puis-je convertir un tableau à une table de hachage en Perl?

J'ai un tableau et a essayé de convertir le contenu du tableau à une valeur de hachage avec des clés et des valeurs. L'Index 0 est une clé, l'indice 1 est une valeur, indice 2 est une clé, indice 3 est une valeur, etc.

Mais il 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 n'est pas correct:

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é seulement avec une partie, et une autre partie de la matrice n'est pas créé dans la table de hachage.

Peut aider quelqu'un?

OriginalL'auteur Senthil kumar | 2010-08-05