use strict; my $bag; while() { chomp; my @data = split; if(exists $bag->{"$data[0] -- $data[1]"}) { $bag->{"$data[0] -- $data[1]"}->[0]++; } else { $bag->{"$data[0] -- $data[1]"} = [1, @data]; } } print(" LOGON -- IP -- CNT ........\n"); while(my($key,$value) = each(%$bag)) { my ($count, $login, $ip) = @$value; printf("%8s -- %17s -- %04d ...\n", $login, $ip, $count); } __DATA__ xzc6548 192.168.10.5 xzc6548 192.168.10.5 xzc6548 192.168.10.10