use strict; use warnings; use File::Find; find({ wanted => \&process_file, preprocess => \&preprocess, no_chdir => 1 }, @ARGV); #find({ wanted => \&process_file, no_chdir => 1 }, @ARGV); sub process_file { @List = (); if (-f $_) { print "This is a file: $_\n"; push(@List,$_); } else { print "This is not file: $_\n"; } return @List; } sub preprocess { print "pre-processing @_\n"; # never see this return sort @_; } @DIRLIST = @List; print "@DIRLIST\n";