ちょっとしたコマンドラインツールを書くのに、Smart::Options は入力データをパースするのに楽ちんです。 なんですけど、もう少し複雑なことをやらせようとするとデータのバリデーションした方がいいなってなる。なので、Data::Validator を通してバリデーションさせてみる
- Smart::Optionsでコマンドラインからの入力データをパース
- パースしたデータはData::Validatorを通してバリデーションを行う
- パースしたデータのキー名毎に作業をマッピング && 作業させる
制限ハッシュで、そのハッシュに任意のキーがあるかチェックするのに defined 使ったら "Attempt to access disallowed key 'キー名' in a restricted hash ..." って怒られて止まっちゃった。 exists 使ったらチェックできた
hayajo さんが Smart::Options::WithRule 書いてくれたので書きなおしてみた。