#!/usr/bin/env perl -l use strict; use warnings; my @pairs = (['CHARLIE ROOT', 'HARRY NODE'], ['abc1', 'cde1']); print get_non_shared(reverse @$_), ' ', get_non_shared(@$_) for @pairs; sub get_non_shared { my ($ref, $src) = @_; my %ref_char = map { $_ => 1 } grep { /\p{Alpha}/ } split '' => $ref; join '' => grep { ! $ref_char{$_} } split '' => $src; }