# 前のは何にも考えずに reply してしまったけど,ruby-ext は「拡張モジュー # ルの作成/整備」のメーリングリストなので ruby-list に持っていきます. # 続かないだろうけど :-) In message <20000221173233C.yashi / yashi.com> yashi / yashi.com writes: > > でもって, > > > > opt.each do > > |o, v| > > case o > > when "help" > > : > > when "version" > > : > > when "output" > > : > > end > > end > > これだと optionの優先順位とかって大丈夫なんでしょうか? もともと getoptlong はオプションの優先順位とか,オプション間の依存/排 他関係を意識しないので問題無いです. # そういうのは `:' ですましてるところに,自分でかく. オプションはコマンドラインにあらわれた順番でもらえるので,適当に何とか する. > begin > parser.each_option do |name, arg| > eval("$OPT_#{name.sub(/^--/, '').gsub(/-/, '_').upcase} = '#{arg}'") > end > rescue > exit -1 > end > > を、そのまま使ってます(^^; Hash のがすきかな. opt = {} parser.each { |name, arg| opt[name.sub(/^--/, "")] = arg || true } とか.ドキュメントのコードは旧来の getopt/parsearg との互換性のために あるようなものだから.... eval 使う程のものでもないかと. # もちろん,ここでの eval が性能に影響を与える程オプションが多いわけな # いんですけど :-) -- 柳川和久 @ 東大阪市 . 大阪府 February 22, 2000 Shortest way may be longest way.