#!/usr/bin/perl -l # http://perlmonks.org/?node_id=1171353 use strict; use warnings; my $have = 'A B _ B A A A'; my $remove = 'A B A'; my @left; my %left; my $pattern = $remove =~ s/ /(.*)/gr; $have =~ /^$pattern$(?{ push @left, "$`$1$2$'" })(*FAIL)/; s/ +/ /g, s/^ //, s/ $//, $left{$_}++ for @left; print for sort keys %left;