#!/usr/bin/perl -wT use strict; no warnings "uninitialized"; # printing undef triggers a stupid warning # testing loop for my $pair (['aabbcc', 'abc'], ['aabbccdd', 'abcdd'], ['abc', 'abc'], ['abc', '123'], ) { my $left = leftover(@$pair); printf ("%8s - %-6s => %-5s\n",@$pair,"'$left'"); } # scrabble "subtraction" subroutine sub leftover { my $string = shift; my $letters = shift; $string =~ s/$_// || return for split // => $letters; return $string; } =OUTPUT aabbcc - abc => 'abc' aabbccdd - abcdd => 'abc' abc - abc => '' abc - 123 => ''