This glob() weirdness is at least an ActiveState issue in their version 5.6 series, especially when trying to make .exe files. They have made progress with this in Perl 5.10, but I actually don't know if it is completely fixed or not. The grep on a readdir will always work.
There is sometimes differences between the "spec" and what the code actually does, especially when dealing with multi-platform issues and in particular Windows vs *nix.