Mail Archives: cygwin/2007/06/23/04:49:46
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/
- Raw text -