#!/usr/bin/perl use strict; use warnings; my $location = "the path of directory you want to process"; #root directory my $n = 0; readsub($location); print "Found $n file(s)!\n"; #print the total number of files you found exit; sub readsub { my ($file_t) = @_; if (-f $file_t) { #if its a file $n++; #the total number of files } if (-d $file_t) { #if its a directory opendir(AA,$file_t) || return; my @list = readdir(AA); closedir (AA); my $file_to_act; foreach $file_to_act (sort @list) { if ($file_to_act =~ /^\.|\.$/) { next; } else { readsub("$file_t/$file_to_act"); } } } }