my %u = map {$_ => $_} split //, $str1; return grep defined, delete @u{split //, $str2}; #### return grep defined, delete @{{map {$_ => $_} split //, $str1}}{split //, $str2};