18歳以上の生年月日チェック

#歳以上の生年月日チェック、作ったんやけど、ださすぎる。あなたならどうする??

sub static_birthday {
    my $date = shift;
    my $args = shift;
    
    # この年齢以上じゃないと登録できない。
    my $over = $args->{over} || 18;
    
    return 0 unless &static_date( $date ); 
    
    $date =~ m/(\d+)-(\d+)-(\d+)/ ;
   
    my ($year,$month,$day ) = Add_Delta_YM( $1, $2,$3, $over , 0 );
    my ( $y ,$m , $d ) = Delta_YMD( $year,$month,$day , Today );

    if ( $y < 0 || ( $y == 0 && $m < 0 ) || ( $y == 0 && $m == 0 && $d < 0 ) ) {
        return 0;
    }
    else {
        return 1;
    }
}

sub static_date {
    my $date = shift; 

    if( $date =~ m/(\d+)-(\d+)-(\d+)/ ) {
        return check_date( $1, $2 ,$3 );
    }
    else {
        return 0;
    }

}