$ perl -le ' my @arry = qw/ a b cd gefge hhi jjkk l m nn o /; print q{Originals: }, join q{ }, @arry; my @n_arry = grep { if ( $_ !~ m/(.).*?\g-1/ ) { $_; } } @arry; print q{Uniques: }, join q{ }, @n_arry; ' Originals: a b cd gefeg hhi jjk l m nn o Uniques: a b cd l m o $ #### $ perl -le ' my @arry = qw/ a b cd gefge hhi jjkk l m nn o /; print q{Originals: }, join q{ }, @arry; my @n_arry = map { $_->{ori} } grep { if ( $_->{ordered} !~ m/(.).*?\g-1/gx ) { $_; } } map { my $str = my $o_str = $_; my @p = sort { $a cmp $b } split //, $o_str; $str = join q{ }, @p; { ori => $o_str, ordered => $str, }; } @arry; print q{Uniques: }, join q{ }, @n_arry; ' Originals: a b cd gefeg hhi jjk l m nn o Uniques: a b cd l m o $ #### $ perl -le ' my $str = shift; print q{Original: }, $str; print q{Unique: }, grep { if ( $_ !~ m/(.).*?\g-1/ ) { $_; }; } ( $str, ); ' foobar Original: foobar Unique: $ perl -le ' my $str = shift; print q{Original: }, $str; print q{Unique: }, grep { if ( $_ !~ m/(.).*?\g-1/ ) { $_; }; } ( $str, ); ' bar Original: bar Unique: bar