タグ

getoptに関するBigFatCatのブックマーク (3)

  • Perlでコマンドラインモジュールを書くときのクラス設計 | おそらくはそれさえも平凡な日々

    コマンドラインから引数が渡すようなモジュールでも以下のような要件があったりする。 コマンドラインからだけじゃなくて、コード内で直接オブジェクトをnewしたい場合もある 複数のコマンドラインツールを組み合わせて使うような場合に@ARGVを何度か渡すケースがある growthforecast.plみたいなサーバースクリプトだとよくあると思っていて、スクリプト単体で引数渡して起動できるけど、自分でGrowthForecast::Web->newしたくなることもある。これが前者。 growthforecast.plにPlackとGrowthForecastのオプションをコマンドラインから同時に渡したいみたいなのがある。これが後者。 GrowthForecastはあくまで例えです。念のため。 それに対しては以下のようにすればよいのかなーとなった。 parse_optionsというクラスメソッドで@A

    Perlでコマンドラインモジュールを書くときのクラス設計 | おそらくはそれさえも平凡な日々
  • 僕のかんがえた最強の Getopt::Long の使い方 - tokuhirom's blog

    http://www.songmu.jp/riji/archives/2013/02/2013getoptlong.htmlhttp://d.hatena.ne.jp/tagomoris/20120918/1347991165my $p = Getopt::Long::Parser->new( config => [qw(posix_default no_ignore_case auto_help)] ); $p->getoptions( 'version!' => \$version, );オプションのこまかいところはsongmuさんとtagomorisさんの記事をみてもらうとして、なにがいいたいかというと、Getopt::Long は OO インターフェイスがあるので、OOインターフェイスをつかった方がゆとり教育をうけている世代のみなさんにも理解しやすいとおもいます。

  • おそらくはそれさえも平凡な日々: 2013年のGetopt::Long

    完璧な引数処理モジュールなどといったものは存在しない。完璧なGetopt::Longが存在しないようにね。 バッドノウハウの宝庫として有名なGetopt::Longですが、なんだかんだでデファクトで、gnu parallel等、名の知れたコマンドラインツールで使われていたりします。標準モジュール縛りでサクッとコマンドラインツールを書くこともあるでしょうし、そうではなくても、Getopt::Longで片付くことも多いので、個人的なベタープラクティスとかtipsとかを書きます。 Perlでコマンドラインオプションの解析に Getopt::Long を使う時、絶対に忘れてはいけない引数 大事なことは上の記事に書いてあるので、まずはこれを読んでください。 サンプルコード 僕がスクリプトを書くときのの雛形は大体以下の様な感じ。 #!/usr/bin/env perl =head1 DESCRIPTI

  • 1