my ($prevDateHour,%curHour); while (<>) { my ($dateHour, $usrMac, $apMac) = parsit(); if ($dateHour ne $prevDateHour) { for my $ap (sort keys %curHour) { print $prevDateHour, $ap, scalar(keys %{$curHour{$ap}}), "\n"; } %curHour=(); $prevDateHour = $dateHour; } $curHour{$apMac}{$usrMac} = 1; }