From: WATANABE Hirofumi Date: 1998-04-16T18:55:23+09:00 Subject: [ruby-list:7583] Re: List on List わたなべです. NAGAI Hidetoshi writes: :W> ところが '*.zip' '*.gz' のように指定するとだめなんですよね. :W> *.zip が 2 個以上あると *.gz は展開されません. 2 回で終わっ :W> ちゃうから. : :あれ? 本当に試されました? うまく行くようですけど... :ただし,dup 付きの場合は順序が違ってしまうし, 展開されないというのは勘違いだったけど. たとえば a.zip, b.zip, c.gz, d.gz があった場合, 引数に '*.zip' '*.gz' を与え ると一回目で '*.zip' が展開されて 0: "a.zip" 1: "b.zip" 2: "*.gz" となりつぎの '*.gz' を展開するときは i が 1 だから 0: "a.zip" 1: "c.gz" 2: "d.gz" 3: "*.gz" となります. だから dup は使えないわけです. dup しなければ f は ARGV の変化に追従するからうまくいくけど, :dup なしの場合は一度展開したものをもう一度処理してしまうようですが. これがいやで結局まつもとさんの最初の script にもどると. :ARGV.each_with_index{|f,i| ARGV[i,1] = /[*?[]/ =~ f ? Dir[f]: f} : :でいいですよね? これが必要だねという意味だったんだけど… -- わたなべひろふみ