my $val = 101.24; print match_decimal_format( 3, 2, $val ) ? "Valid!\n" : "Invalid...\n"; sub match_decimal_format { my ( $leading, $trailing, $number ) = @_; return $number =~ m/^ [0-9]{$leading} \. [0-9]{$trailing} $/x; }