The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Sub-MicroSig

This module allows you to give subroutine a signature using
L<Params::Validate::Micro>.

  use Sub::MicroSig;

  sub pow :Sig($x $pow; $trunc) {
    my $arg = shift;
    my $value = $arg->{x} ** $arg->{pow};

    $value = int $value if $arg->{trunc};
  }
  
  ...

  pow({ pow => 2, x => 4 }); # 64
  pow([ 2, 0.5, 1 ]);        #  1 # int(sqrt(2))