7桁の郵便番号の書式かチェックする - Perl

7桁の郵便番号かどうかチェックしたい。 具体的には「123-4567」または「1234567」といった書式かどうかをチェックする。

サンプル

;#
;#入力チェック
;#

if( isPostCD('123-4567') ){
  print "郵便番号です。\n";
}
else{
  print "郵便番号ではありません。\n";
}


#---------------------------------------
#郵便番号かチェックする
#---------------------------------------
sub isPostCD{
  my $str = shift || return(undef);

  #-- 郵便番号か --#
  if( $str =~ /^[0-9]{3}-{0,}[0-9]{4}$/ ){
    return(1);
  }
  #-- 郵便番号ではないか --#
  else{
    return(0);
  }
}

注意点としては、あくまで書式のチェックであって実在する郵便番号かどうかのチェックではない。実在するかどうかを確認したい場合は、日本郵政公社が公開しているデータとつきあわせる必要がある。 www.post.japanpost.jp