Hash - это просто. Обозначается значком " % ", за ним идёт имя - %hash_name. Hash - ассоциативный массив, это значит что у каждого значения есть имя(ключ). Записать его можно по разному, обычно это делается так:
my %typical_hash = (
'some_key_name_0' => 'something',
...
);
либо так, но первая запись нагляднее:
my %typical_hash = (
'some_key_name_0', 'something', ...
);
можно так:
my $typical_hash{'some_key_name_0'} = 'something';
...
инициализировать или очистить хэш можно так:
my %hash = ();
извлечь значение из хэша можно по ключу, вот так:
print $typical_hash{'some_key_name_0'};
извлечь значение ключа можно передав хэш функции keys():
print keys %typical_hash;
ключи и значения из хэша берутся с помощью each():
my ($key, $val) = each(%typical_hash);
для того, чтобы перебрать все значения и ключи хэша, необходимо положить функции в цикл:
print for keys %typical_hash;
и для перебора ключей со значениями:
while (my ($key, $value) = each(%typical_hash)) {
print "ключ $key хранит значение $value\n";
}
либо
print "ключ ".$_." хранит значение ".$typical_hash{$_}."\n" for keys %typical_hash;
данные в хэше хранятся не упорядочено, отсортировать хэш по ключам можно так:
for my $key(sort keys %typical_hash) {
my $val = $typical_hash{$key};
print "$key\ => $val\n";
}
посчитать количество пар "ключ => значение" можно с помощью функции keys(), есть два способа:
#1.
print ''.keys %typical_hash ;
#2.
print scalar(keys %typical_hash);
Комментариев нет:
Отправить комментарий