use strict; use warnings; use diagnostics; use Data::Dumper qw(Dumper); our (@uniqueMac); while (<>) { my ($dateHour,$usrMac,$apMac) = (/regex/); push (@usrMac, $usrMac); @uniqueMac = map {$_ = 1} @usrMac; push (@array, $dateHour{$apMac} = scalar(@uniqueMac); } print @array;