Hi everybody: I have come across an interesting problem with Cygwin's perl and rsync. If I insert a data CD-ROM on drive R: , the following perl one-liner works fine:
perl -e 'if (-d "/cygdrive/r") { print "yes\n" } else { print "no\n" }' That means, I get "yes" printed out. This one, however, does not (I get "no"). The only difference is the "use strict;" at the beginning: perl -e 'use strict; if (-d "/cygdrive/r") { print "yes\n" } else { print "no\n" }' Could you think of a reason why the "use strict;" at the beginning could make a difference? I hope someone can help confirm this problem, that would be enough for now. I have reported this issue on perl 5 porters before, but got no confirmation, and I was asked to post here, see this message: http://www.nntp.perl.org/group/perl.perl5.porters/2009/04/msg145767.html I have seen this effect on a completely different machine, with Windows Vista instead of Windows XP, and with rather different hardware. Note that I have changed my CD-ROM drive letter from the default D: to R: (for Reader) with Window's disk admin tool. My other machine has a second W: (for Writer) drive. All my drives are from manufacturer LG, some of them rather old, some pretty new. I have just tested on another Windows XP (also German) with another brand of CD recorder / DVD reader, and I still get the same problem. However, I have tested on a Spanish Windows XP with LG drives, and that was fine (!). I also had rsync refusing to copy files from the CD-ROM because the files were "non-regular" (but the cp command does copy the files alright). Neither "-device" nor any of the "--links-xxx" options would help. So I dug a little deeper and realised that ls was reporting the files and directores as special, block or character devices, see below. That is probably the reason why perl is sometimes (but not always) having problems with that drive. $ uname -a CYGWIN_NT-5.1 MYMACHINE 1.5.25(0.156/4/2) 2008-06-12 19:34 i686 Cygwin $ ls -la /cygdrive/r total 4581112 br-------T 8910 285212672 3221225472 6656, 8897 Jan 15 1979 . dr-xr-xr-x 1 0 root 0 Jan 1 1970 .. cr-------T 8910 4286353920 1577058303 27004, 37376 Jan 15 1979 MD5SUMS.txt cr-------T 8910 3934034145 3967586836 55296, 9281 Jan 15 1979 debian-40r1-i386-DVD-1.iso Did you notice the 'b' and the 'c' at the beginning of the file listing? This is the output from the test program on the post referenced above: $ ./test.exe /cygdrive/r Device Type : 2 Characteristics : 121 Volume Name : <Debian4.0r1> Serial Number : 3707807536 Max Filenamelength : 255 Filesystemname : <UDF> Flags : 80005 FILE_CASE_SENSITIVE_SEARCH : TRUE FILE_CASE_PRESERVED_NAMES : FALSE FILE_UNICODE_ON_DISK : TRUE FILE_PERSISTENT_ACLS : FALSE FILE_FILE_COMPRESSION : FALSE FILE_VOLUME_QUOTAS : FALSE FILE_SUPPORTS_SPARSE_FILES : FALSE FILE_SUPPORTS_REPARSE_POINTS: FALSE FILE_SUPPORTS_REMOTE_STORAGE: FALSE FILE_VOLUME_IS_COMPRESSED : FALSE FILE_SUPPORTS_OBJECT_IDS : FALSE FILE_SUPPORTS_ENCRYPTION : FALSE FILE_NAMED_STREAMS : FALSE FILE_READ_ONLY_VOLUME : TRUE FILE_SEQUENTIAL_WRITE_ONCE : FALSE FILE_SUPPORTS_TRANSACTIONS : FALSE I've also tried with other CD-ROM media to no avail. I wonder under what circumstances would cygwin report CD-ROM directories and files as special block/character devices.. Please cc me on the answer, as I'm not subscribed to this list. Many thanks, Ruben -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple