>perl -wMstrict -le "use List::Util qw(reduce); ;; my @ra = qw(ABCDxyz ABCfoo ABCDEbar); ;; use vars qw($a $b); my $min_start_seq = reduce { length($a) < length($b) ? $a : $b } map m{ \A \x00* }xmsg, map $ra[0] ^ $_, @ra ; my $common_starting_substring = $ra[0] & ~$min_start_seq; print qq{'$common_starting_substring'}; " 'ABC'