Smart::Args とは 実行時型チェック / パラメーターチェックが出来る便利なモジュールです。 現在、 Params::Validate がデファクトスタンダードっぽいんですが、速度が遅かったりするので正直微妙です。 まぁ、速度っていうか色々面倒い感じだなーって思ってきた人も多いと思います。 Smart::Args の使い方 use Smart::Args; sub foo { args my $p => 'Int', my $q => { isa => 'Int', optional => 1 }; say $q ? "$p, $q" : $p; } foo(p => 1); # 1 foo(p => 1, q => 2); # 1, 2 これまた簡単! 例えば、以下のようにすると foo(p => 'str'); 以下のように怒られます。 Validation failed f
![Smart::Args でバリデーションする。またはバリデーターとして必要な事 - Articles Advent Calendar 2010 Casual](https://cdn-ak-scissors.b.st-hatena.com/image/square/7780a2e2697e268132534b4526cbfebbb1bf45ed/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fkfly8%2Fimage%2Fupload%2Fl_text%3ANotoSansJP-Black.otf_50_bold%3ASmart%253A%253AArgs%2520%25E3%2581%25A7%25E3%2583%2590%25E3%2583%25AA%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3%25E3%2581%2599%25E3%2582%258B%25E3%2580%2582%25E3%2581%25BE%25E3%2581%259F%25E3%2581%25AF%25E3%2583%2590%25E3%2583%25AA%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E3%2583%25BC%25E3%2581%25A8%25E3%2581%2597%25E3%2581%25A6%25E5%25BF%2585%25E8%25A6%2581%25E3%2581%25AA%25E4%25BA%258B%2Cco_rgb%3A000000%2Cw_900%2Cc_fit%2Fl_text%3ANotoSansJP-Black.otf_30_bold%3Ayappo%2Cco_rgb%3A000000%2Cg_south_east%2Cx_130%2Cy_120%2Fv1601626948%2Fog-perl-users-jp.png)