use strict; use warnings; my @data = qw/a mnk ab m b bc abcd cd bcd bd m nk/; (my $result, @data) = sort {length($b) <=> length($a)} @data; for (@data) { $result .= ' '.$_ if index($result, $_) == -1; } print $result;