Я пытаюсь выяснить количество ключей и количество значений в хэше и распечатать эти числа. Я написал свой код, как это, но он не дал количество ключей. В чем ошибка в моем коде?
#!/usr/bin/perl
use warnings;
use strict;
use XML::LibXML::Reader;
my $file;open $file, 'formal.xml');
my $reader = XML::LibXML::Reader->new( IO => $file ) or die ("unable to open file");
while ( $reader->nextElement( 'DATA' ) ) {
my $info = $reader->readOuterXml();
$reader->nextElement( 'Number' );
my $number = $reader->readInnerXml();
print( "num: $number\n" );
print( " datainfo: $info\n" );
Как я могу хранить эти числа и данные в хэше? А как подсчитать количество ключей в хэше? Я пытался так, но это не работает.
my %nums =( "$number", $info);
while ((my $keys, my $values) = each (%nums)) {
print ("NUMBER:$keys." =>"INFORMATION: ".$values." \n");
}
my $key_count = keys %nums;
print "$key_count";
}
close($file);
}
Когда я пытаюсь выполнить его, он дает только один номер, но у меня есть больше номеров. Может быть, мой хэш содержит одно число, но как я могу перебрать мой хэш, чтобы сохранить больше чисел?