I'm just guessing but I highly suspect that chdir by default is there for hysterical reasons. Perl distro contains a script find2perl which can convert find command lines to equivalent Perl code. Generated perl uses File::Find. As this code should emulate find's behaviour File::Find has to do chdir.