use strict; my @data = qw/a mnk ab m b bc abcd cd bcd bd m nk /; my @result = (); foreach $a(@data){ my $is_sub = 0; foreach $b(@data){ $b =~ /$a/i and length($b) != length($a) and $is_sub = 1 and last; } push @result,$a unless $is_sub; } print join(",",@result); # output is: mnk,abcd,bd