use File::Find; use List::Util 'shuffle'; my $somedir = "."; sub handlefind {print $_,"\n";} find({ wanted => \&handlefind, preprocess=>\&shuffle,follow=>1 }, $somedir);