У меня есть набор данных со следующими полями.
имя хоста, модель, местоположение, номер порта, активирован ?, вверх?
Я бы преобразовал их в хэш-структуру (возможно, аналогичную приведенной ниже)
my %switches = (
a => {
"hostname" => "SwitchA",
"model" => "3750",
"location" => "Building A"
"total_ports" => 48,
"configured_ports" => 30,
"used_ports" => 24,
},
b => {
"hostname" => "SwitchB",
"model" => "3560",
"location" => "Building B"
"total_ports" => 48,
"configured_ports" => 36,
"used_ports" => 20,
},
},
);
В конце я хочу сгенерировать статистику, такую как: количество переключателей на здание, количество переключателей каждой модели на здание. Общее количество.количество работающих портов в каждом здании
Статистика может не ограничиваться только строительством, может даже основываться на коммутаторах (т. е. количество используемых коммутаторов 95% и т. д.).При заданной структуре данных, как я могу перечислить эти счетчики?
И наоборот, есть ли лучший способ для хранения моих данных?Я могу вспомнить хотя бы один формат:
<while iterating over records>
{
hash{$location}->{$model_name}->count++;
if ($State eq 'Active') {hash{$location}->{up_ports}->count++};
Что может быть лучше для этого?Если я выбрал первый формат (где вся информация внутри хэша не повреждена), как я могу объединить данные для получения различной статистики?(некоторые примеры фрагментов кода будут очень полезны!)