No...depends on where you run that script from. If you run it anywhere outside of /bozo, it doesn't have the full path, so -d fails. If you change your test to
if ( -d "$ldir/$_" ) { print "This is directory: $_\n"; next; } then it works. -- William Sutton On Sat, 23 Jun 2007, Wynfield Henman wrote: > From what I read the following should work, but it doesn't. > Can one of you familiar with cygwin's perl help me out. > > Why doesn't the test, -d, for directory work on the subdirectory? > It should, in my considered opinion. > Below is sufficient code to perform a simple test. > > Your help is appreciated. > > Regards, > wynfield > > prepare for the test from the command line: > $ mkdir /bozo > $ mkdir /bozo/bozo_the_clown_dir > > Check this: > find /bozo -type d -print > /bozo > /bozo/bozo_the_clown_dir > -- ok we have a directory and it has a subdirectory > > Sample code: > ------------------ start of simple perl program > #! /bin/perl > > my $ldir="/bozo"; > > if ( ! opendir DH, $ldir) > { > print "Couldn't open as a dir: $ldir. \n"; > exit 0; > } > > print "Processing directory: $ldir\n"; > while ( $_ = readdir(DH) ) # will be either a file or directory > name > { > if ( $_ eq "." or $_ eq ".." ) { print "dir . or ..\n"; next; } > if ( -d $_ ) { print "This is directory: $_\n"; next; } > print "Escaped detection $_\n"; > } > > close (DH); > ---------------------------- end of sample code > > -- > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > Problem reports: http://cygwin.com/problems.html > Documentation: http://cygwin.com/docs.html > FAQ: http://cygwin.com/faq/ > > > -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/