An idea of a syntactic validator
16:54 (tokuhirom_______) Params::Validateをかけたときに、そのスタックにレキシカル変数としておけたら便利じゃね?という
その後の議論のまとめ。
呼び出し元に変数を定義するのは無理ですが,引数として与えられた変数の名前ならPadWalker::var_name()で得ることができます。また,変数アトリビュートで型を指定するようにもできます。アトリビュートは重ねがけできるので,Optional, Defaultなどもできます。
ということを考えると,ソースフィルタなしでも以下のようなValidation構文が実現できるはず…というアイデアでした。
use SyntacticValidator; sub foo{ args my $foo : Int Default(42), my $bar : Symbol( yes | no ) Optional; # ... } foo(foo => 10, bar => 'yes');
なかなか面白そうなので,Mooseのほうにある程度区切りがついたら着手しようと思います。