in reply to Re: Bugs in File::Find on Windows
in thread Bugs in File::Find on Windows
You haven't reproduced my failure scenario, which requires that the target directory be a drive letter with no other path info. Try this:
cd /d e:\windows cd /d c:\ find({ no_chdir => 1, wanted => sub { print if -d } }, 'E:' );
But I've discovered more about this bug. Try this:
Output is just as you'd expect:cd /d c:\ mkdir test\windows\foo cd test cd /d e:\ perl -MFile::Find -e "$\=$/; find( sub { print if -d }, 'c:' );"
But if you run. windows foo
you get unexpected (erroneous) output:perl -MFile::Find -e "$\=$/; find({ no_chdir => 1, wanted => sub { pri +nt if -d } }, 'c:' );"
. . . c:/windows/$hf_mig$/KB898461/update c:/windows/$MSI31Uninstall_KB893803$ c:/windows/$MSI31Uninstall_KB893803$/spuninst c:/windows/$NtServicePackUninstall$ c:/windows/$NtServicePackUninstall$/spuninst c:/windows/$NtUninstallKB816486$ . . . c:/windows/ADDINS c:/windows/AppPatch c:/windows/assembly c:/windows/assembly/GAC_32 c:/windows/assembly/GAC_32/CustomMarshalers c:/windows/assembly/GAC_32/CustomMarshalers/2.0.0.0__b03f5f7f11d50a3a . . .
In other words, if it finds a subdirectory of the target directory named X, it searches under C:\X, even if the target directory is not C:\. It's definitely a bug.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: Bugs in File::Find on Windows
by pKai (Priest) on Feb 19, 2007 at 19:30 UTC |