2008年2月4日月曜日

オプション処理!App::Option


このエントリーをはてなブックマークに追加


さて、まだまだperl初心者なワタクシ、blogデビューをきっかけにちゃんと勉強していこうと思います。
ルー語変換で有名な冨田さんのblogを完全に参考。



#!/usr/bin/perl -w

use App::Options(
option => {
name => "type=string; required; default=Unknown;",
age => "type=integer;",
debug => "type=boolean",
},
);

# 値は %App::options の中
print "Hello $App::options{name}.\n";




実行すると



Hello Unknown.




んで、これの便利なところはUsage(日本語訳:使い方)を自動的に表示してくれるところ。
requiredは必須という意味らしいのでdefaultを消してみましょう。



use App::Options(
option => {
name => "type=string; required;", #default=Unknown;",
age => "type=integer;",
debug => "type=boolean",
},
);



実行結果



Hello required.



おろっ!?
required=1にしてみた。



Error: "name" is a required option but is not defined
Usage: ./add_option_use.pl [options] [args]
--help print this message (also -?)
--age=<value> [undef] (integer)
--debug [undef] (boolean)
--name=<value> [undef] (string)



おお、動いた動いた。
引数指定が整数や文字列といった型だけでなく、正規表現もさくっと作れます。



#ティーンエイジャーしか実行できません
use App::Options(
option => {
name => 'type=string; required=1;', #default=Unknown;",
age => 'type=/^1[\d]+$/; required=1',
debug => "type=boolean",
},
);




あとは自己流helpメッセージを作ったり、--nameを短縮名-nにする方法とか勉強したら
普通に使う分には困らなさそう。む、でも軽く見た限りでは短縮名の方法がよくわからないぞ…。

最後にUsageの発音に関して。
エキサイト英和辞書

ゆぅーせっちゅ!と聞こえるけど、これループで聞いてたら最後のちゅの部分が人間の声だと思えなくなってきたyoなんか擦る音に聞こえる…





0 件のコメント:

コメントを投稿