On Fri, Mar 11, 2005 at 06:12:58PM -0500, Igor Pechtchanski wrote: > On Fri, 11 Mar 2005, Yitzchak Scott-Thoennes wrote: > > > On Thu, Mar 10, 2005 at 08:44:40PM -0500, Igor Pechtchanski wrote: > > > Hi, > > > > > > I'm having trouble with Perl 5.8.6-4 under Cygwin 1.5.12. > > > > > > $ perl -e 'exit !(-r $ARGV[0])' /cygdrive/c/Program\ > > > Files/ThinkPad/Utilities && echo "yep" > > > $ test -r /cygdrive/c/Program\ Files/ThinkPad/Utilities && echo "yep" > > > yep > > > > > > Is this behavior by design, or does perl actually check ACLs and something > > > is wrong with my installation? > > > Igor > > > > perldoc -f -r: > > > > The interpretation of the file permission operators "-r", > > "-R", > > "-w", "-W", "-x", and "-X" is by default based solely on the > > mode of the file and the uids and gids of the user. There may > > be other reasons you can't actually read, write, or execute > > the > > file. Such reasons may be for example network filesystem > > access controls, ACLs (access control lists), read-only > > filesystems, and unrecognized executable formats. > > > > You can try the filetest pragma: use filetest 'access'; > > see perldoc filetest. > > I see. So basically this isn't likely to change in Perl, and so is a bug > in the program that uses -r here. I'll report this as a bug, then. > Thanks, > Igor
There was some discussion about this a while ago; a quick read of http://guest:[EMAIL PROTECTED]/rt3/Ticket/Display.html?id=30885 makes me think AIX was changed to always use access; perhaps doing so for cygwin would also be an option. I'm not sure why the original call was made to not use access() by default where available.
