MooseX::Params::Validateでメソッド引数のvalidation
MooseX::Methodとやりすぎ感があるけれど、これくらいなら良さそう。
モジュールのインターフェースになる部分に使うのがよさそうだなぁ。入り口でがちがちにValidationかけるのは、個人的な趣味にあう。
#!/usr/bin/env perl use strict; use warnings; use Perl6::Say; { package Foo; use Moose; use MooseX::Params::Validate; sub foo { my ( $self, %params ) = validate( \@_, bar => { isa => 'Int', default => 'Moose' }, ); return "Horray for $params{bar}!"; } } my $foo = Foo->new; say $foo->foo( bar => 1 ); #success say $foo->foo( bar => 'hoge' ); #fail __END__
# ただ、現状のエラーメッセージはあまりにひどいのだけれど...