サブルーチンで受け取る引数をバリデートする(Data::Validator)
2015年1月6日
Data::Validatorを使ってみる。
package MyApp; use strict; use warnings; use Object::Simple -base; use 5.10.0; use Data::Validator; sub hoge { state $r = Data::Validator->new( id => 'Int', )->with('Method','Sequenced','NoThrow'); my ( $self, $args ) = $r->validate(@_); return 0 if $r->has_errors; # 処理 ... return 1; }
stateを使う為に、use 5.10.0;も追加。
withの指定は、
Method:最初の引数をclass(self)に固定。
Sequenced: 引数をリストで送る場合。
NoThrow: 例外を発生させない。(has_errorsで判定を行う)
use MyApp; my $app = MyApp->new(); $app->hoge({ id => 1111 });
引数が1つだけなら、自力でチェックした方が簡単な気もするけど、複数の場合はモジュール使った方がいいかな。