#!/usr/bin/perl use strict; use warnings; my ($str1, $str2) = @ARGV; die "Usage: $0 " if ! defined $str2; print join '', In_Common($str1, $str2); sub In_Common { my ($str1, $str2) = @_; my %u; $u{ $_ } = 1 for split //, $str1; return grep { $u{ $_ } ? ( $u{ $_ }-- , $_ ) : () } split //, $str2; }