use strict; use warnings; use File::Find; my $drive = $ARGV[0]; my @empty; my $ndirs = 0; find( \&listing, $drive ); #Do stuff here foreach my $files (@empty) { print "Found empty folder $files\n"; } print "Found $ndirs folders in total\n"; sub listing { return if /^\.{1,}/; if (-d) { my $number_of_files = grep $_ => glob("$_/*"); if ( $number_of_files == 0 ) { push @empty, $File::Find::name; $ndirs++; } } }