in reply to A dispatch table to match named params of a sub

btw. since you're already using Test::More you could go on and optimize the tests a bit:
sub mine { my %args = @_; is( $args{one}, 'first', 'arg one' ); is( $args{two}, 'second', 'arg two' ); done_testing; }
If the test fails it provides a bit more detail what went wrong, e.g.:
    not ok 1 - arg one
    #   Failed test 'arg one'
    #   in ###.t at line ###.
    #          got: 'foo'
    #     expected: 'first'
Another one of my favorites:
is_deeply(\@computed, \@expected, 'testname') or diag(Data::Dumper->Dump([\@computed], ['*computed']));