in reply to File::Find subdirectory limit?

This is almost certainly that you are hitting the limits of the Win32 apis. They have a hard coded limit on the size of a path/filename. On my NT box this is 241 characters.

The actual path is fine being below this limit, but when you add all the /../s, it pushes it over the limit and the api just rejects it. At least it checks. MS have rather a bad history of not checking for buffer overruns:)

The problem lies with the File::Find modules use of this code, join('/',('..') x ($CdLvl-$Level)) which then gets appended to the full path of the current place in the directory structure. I'm not quite sure why they do this instead of </code>$currentpath = substr( $current_path, 0, rindex( '/', ($CdLvl-$Level) ) );</code>?

Isn't there a no-chdir option on File::Find? That would avoid the situation occuring maybe?


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller