use File::Find; sub process_file { push @files, $File::Find::name unless (-d); push @dirs, $File::Find::name if (-d) } find( \&process_file, "your src dir" );