in reply to Win32 File tests, pathnames

On the security side, for some reason the implementation does not use the ACL to check permissions, it uses the old style DOS permissions, which only has read-only. I think POSIX::access does the same, but I'm not sure and can't test it right now. It might be worth a look. Otherwise I'm afraid its Win32::FileSecurity.
Please note that just because you have execute access on a Windows script it does not mean you can execute it, and the Windows does not support #! This means, for example, you run a perl script by prefixing 'perl -w'. See also Win32::FetchCommand.