#!/usr/bin/perl use strict; my %HoH; while () { my ($item, $group, $count) = split; if ( defined( $HoH{$item}{$group} ) ) { $HoH{$item}{$group} = $count if ( $HoH{$item}{$group} < $count ); } else { $HoH{$item}{$group} = $count; } } foreach my $item ( keys %HoH ) { foreach my $group ( keys %{ $HoH{$item} } ) { print "$item $group $HoH{$item}->{$group}\n"; } } __DATA__ 1ct9B 3 1 1f7uA 2 3 1gaxA 2 1 1gpmA 3 5 1ihoA 6 4 1mopA 6 3 1ileA 2 5 1iq0A 2 3 1vlhB 5 3 1jhdA 5 4