新井です。 ruby-dev にいきます。 In message "[rubyist:1286] Re: ARGV の機能" on 24 Mar 2002 13:39:38 +0900, Nobuyoshi Nakada <nobu.nokada / softhome.net> wrote: > なかだです。 > > fnmatch は、"**/" も使えませんね。連続する ** は、* と同じで > > した。以下に訂正 > > FNM_PATHNAMEを指定したときは**/も見た方がいいような気がしますね。 FNM_DOTMATCH が出て来て fnmatch は中途半端な印象があります。 FNM_PATHNAME 指定をデフォルトにした方が混乱がなくて使いやすそうです。 * fnmatch という名のデフォルトがパス名を考慮しないのは変 (ライブラリ関数の挙動はここでは無視。実際、既に FNM_DOTMATCH は無視している) * 利用者は、シェルのパターンマッチの挙動をまず意図しそう。 p File.fnmatch("a*/c", "a/b/c") => true あれ?っとなりそう。 * よく使うと思われるシェルのパターンマッチをさせたいとき、長ったらしい。 p File.fnmatch("a*/c", "a/b/c", File::FNM_PATHNAME) * その上で、**/ もサポートしてくれた方が良さそう。 * 名前は、FNM_NOPATHNAME か? そうすると、後、Dir.glob と、File.fnmatch の挙動の違いで残さ れるのは、{..} だけになるかな。 fnmatch() がライブラリ関数と同じ(FNM_PERIOD 復活)であれば、 この気持ちは多少は治まります。でも、使いやすさで言えばやっぱ りライブラリは無視した方が良いように思えます。いかがでしょう か? > あと、File.fnmatchやDir.globはSJIS対応してないですね。どうした > ものかな、めんどくさそう。 あらま。 -- 新井康司 (Koji Arai)