Perl で引数の解釈と Usage の作成、のオレ流まとめ
※ 最近 Perl の話題が多いのは昔のスクリプトをいじっているからー。
先に結論を書くと、
- Getopt::Long
- Pod::Usage
を使う。
ベストプラクティスから外れているのは CPAN そのものを積極的に利用する気がないから。実質標準あるいはまさに標準であり、Perl 以外に特別なものが必要ないか、あるいは OS というかディストリビューションのパッケージシステムに組み込まれているケースが多く、導入が楽であるということが極めて重要。
Getopt::Long
Ruby の optparse ほど賢くないので、usage の自動生成とかできない。しかし何はともあれ引数の取得だけはかなり楽なので、そこだけに期待して利用する。
Pod::Usage
まず最初に
POD はちゃんと書け。
で、基本的には
- -verbose の値によって表示するドキュメントのボリュームを設定
- -input によって利用する pod の収まっているファイルを指定
くらいを使う。
日本語も書ける。ただしどのバージョンから公式に利用できるのかはよく分からない。1OSX 10.3 に入っている Perl 5.8.1 RC3 では日本語は化けたが、Debian etch(4.0) に入っている 5.8.8 では問題なく扱える。
=encoding
で Encode の解釈できるエンコーディング名を書いておけと言われているが、たぶん locale とか terminal とかその辺のエンコーディングが統一されていれば、書かれていなくても問題なく解釈、表示できるっぽい。
あちこちの blog などで自力でパッチを当てたりして日本語を利用している人を見ることができる。 ↩