use File::Find qw(finddepth); die "GIVE DIRECTORY NAME AS AN ARGUMENT\n" unless @ARGV; *name = *File::Find::name; finddepth \&lis, @ARGV; if ( !-d ) { print "DIRECTORY NOT FOUND!\n"; exit(0); } else { sub lis { if (!-l && -d _) { $i++; print "$name is a DIRECTORY\n"; } else { $j++; print "$name\n"; } } $x=$i+$j; print "\nDIRECTORY COUNT = $i\n"; print "FILE COUNT = $j\n"; print "TOTAL RECORD COUNT = $x\n"; }