#!/usr/bin/perl use strict; use warnings; use Cwd; use Getopt::Std; my %opts; getopts('d:', \%opts); my $start_dir = $opts{d}; $start_dir = getcwd() unless defined ($start_dir); listDir($start_dir); print ("\n\nfinished.\n\n"); sub listDir { my $thisdir = $_[0]; print "\n$thisdir:\n"; opendir THISDIR, $thisdir; my @allentries = readdir THISDIR; my @directories = sort grep(-d "$thisdir/$_" && !/^\.\.?$/, @allentries); closedir THISDIR; foreach my $entry (@allentries) { print "\t$entry\n"; } foreach my $entry (@directories) { chomp($entry); listDir("$thisdir/$entry"); } }