use File::Find; my @list; find(sub { push(@list, $File::Find::name) }, "/your/path"); # @list contains all file objects at and under /your/path #### find(sub { -f $_ && push(@list, $File::Find::name); 1 }, "/your/path");