# なさそうなので作ってみましたが、最適化できそうな部分や、
# もっといい方法あったら教えてください。
# 文字列スプリットして一文字ずつ調べるのって無駄?

sub get_common_prefix{

  return $_[0] if @_ == 1;

  my $min_len = length $_[0];
  my @a = ();

  foreach (@_){
    push @a, [split "", $_];
    my $len = length $_;
    $min_len = $len if $len < $min_len;
  }

  my $first = shift @a;
  my $r = "";

  for(my $i = 0; $i < $min_len; $i++){
    my $c = $first->[$i];
    foreach(@a){
      return $r unless $c eq $_->[$i];
    }
    $r .= $c;
  }
  return $r;
}