my %master; while (<>) { my @line = split ' '; foreach my $alias ( @line[1..$#line] ) { $master{$line[0]}{$alias}++; } } foreach my $ip ( sort keys %master ) { print "$ip ", +join( ' ', sort keys %{$master{$ip}}), "\n"; }