drop-in replacement for MooseX::Types::Common::Numeric


This module is covered by the Type-Tiny stability policy.


A drop-in replacement for MooseX::Types::Common::Numeric.


The following types are similar to those described in MooseX::Types::Common::Numeric.

  • PositiveNum
  • PositiveOrZeroNum
  • PositiveInt
  • PositiveOrZeroInt
  • NegativeNum
  • NegativeOrZeroNum
  • NegativeInt
  • NegativeOrZeroInt
  • SingleDigit

    SingleDigit interestingly accepts the numbers -9 to -1; not just 0 to 9.

This module also defines an extra pair of type constraints not found in MooseX::Types::Common::Numeric.

  • IntRange[`min, `max]

    Type constraint for an integer between min and max. For example:

      IntRange[1, 10]

    The maximum can be omitted.

      IntRange[10]   # at least 10

    The minimum and maximum are inclusive.

  • NumRange[`min, `max]

    Type constraint for a number between min and max. For example:

      NumRange[0.1, 10.0]

    As with IntRange, the maximum can be omitted, and the minimum and maximum are inclusive.

    Exclusive ranges can be useful for non-integer values, so additional parameters can be given to make the minimum and maximum exclusive.

      NumRange[0.1, 10.0, 0, 0]  # both inclusive
      NumRange[0.1, 10.0, 0, 1]  # exclusive maximum, so 10.0 is invalid
      NumRange[0.1, 10.0, 1, 0]  # exclusive minimum, so 0.1 is invalid
      NumRange[0.1, 10.0, 1, 1]  # both exclusive

    Making one of the limits exclusive means that a < or > operator will be used instead of the usual <= or >= operators.


Please report any bugs to https://github.com/tobyink/p5-type-tiny/issues.

See Also

Types::Standard, Types::Common::String.

MooseX::Types::Common, MooseX::Types::Common::Numeric, MooseX::Types::Common::String.

The best place to start learning about this module is the manual.