use File::Find; my @dir_list; sub wanted { if( -d $_ ) { push @dir_list, $File::Find::name; } } find( &wanted, '.' ); # @dir_list now contains the list of directories found.