#!/usr/bin/perl use warnings; use Data::Dumper; my @data=( "A B C D E F G", "B F G", "D E F", "A C", "A D E F G", "G",); my $standard = shift(@data); print "standard line: 1 => $standard\n"; $standard =~ s/\s+//g; my %results; my $original; my $line_num=2; foreach (@data) { $original{$_}=$line_num++; $results{$_}= eval "tr/$standard//"; die @$ if $@; } my @sorted_keys = sort {$results{$b} <=> $results{$a} or $original{$a} <=> $original{$b} }keys %results; foreach (@sorted_keys) { print "line: $original{$_} => $_ \t: matches $results{$_}\n"; } __END__ standard line: 1 => A B C D E F G line: 5 => A D E F G : matches 5 line: 2 => B F G : matches 3 line: 3 => D E F : matches 3 line: 4 => A C : matches 2 line: 6 => G : matches 1