Я пытаюсь сосчитать количество запусков и остановок некоторых служб, которые я отслеживаю в журналах.Я не собираюсь пропускать здесь весь код, но мой способ хеширования заключается в следующем: я передаю эти старты и остановки в анонимный хеш.Сначала я создаю анонимный хеш, заполненный ключами и значениями (в моем случае $ knot - это ключ, а нули - это значения).Затем я заменяю значения другим хешем.Мой код выглядит так:
foreach $knot (@knots){
chomp $knot;
$variable = $variable."$knot;0;";
$Services = {split(/;/,$variable)};
}
my $data =
{
Starts=>'0',
Stops=>'0',
};
foreach my $key (keys %$Services) {
$Services->{$key} = $data;
}
print Dumper $Services;
Печать показывает:
$VAR1 = {
' knot1' => {
'Stops' => '0',
'Starts' => '0'
},
' knot2' => $VAR1->{' knot1'},
' knot3' => $VAR1->{' knot1'},
' knot4' => $VAR1->{' knot1'},
' knot5' => $VAR1->{' knot1'},
и так далее.Есть ли лучший способ сделать это?Мой путь, если я прав, плохо написан, потому что изменение узла1 запускает / останавливает изменения всех остальных значений узла.