in reply to Re^2: problem using rename
in thread problem using rename

++ for tracking this problem down and for reporting your findings here. Perhaps it will help someone out in the future.

By the way, I went back and analyzed your code using perlcritic, hoping that it would detect and report an opendir without a matching closedir. No luck -- at least not with its default settings. Perhaps it can be configured to catch this type of situation.

I believe this problem can be averted using the File::Slurp module from CPAN. Its read_dir function automatically opens and closes a directory. Furthermore, it checks if the open was successful (which your code does not do). Finally, it excludes . and .. by default.

use File::Slurp qw(read_dir); my @entries = read_dir($InDir);

Also, the rename doc mentions that File::Copy::move might be a more portable alternative.