tokuhirom's Blog

glob の話

Perl5 では glob("no_such_file") が ("no_such_file") をかえすが File::Zglob では () をかえす。File::Zglob は gauche の実装を参考にしているので、gauche の実装とたぶんおなじ挙動。Ruby の Dir.glob も 空の配列をかえす。

glob の挙動としては、空リストがかえってくる方が素直だとおもうのだが、Perl5 ではどうしてこうなっているのか。

Perl5 の glob は、csh の glob をもらってきているので、シェルの glob 展開をそのままうけいれてしまっているのだろうという話を gfx がしていた。
なるほどたしかにそうかもしれない。shell では、ただの文字列はそのままただの文字列としてかえる。

しかしライブラリの挙動としてはやはり空リストをかえす方が素直だとおもう。