3 # Modify the recursive directory dumping routine so it shows the nested
4 # directories through indentation. An empty directory should show up as:
6 # sandbar, an empty directory
8 # while a nonempty directory should appear with nested contents, indented two
11 # uss_minnow, with contents:
14 # galley, with contents:
15 # captain_crunch_cereal
28 if (-f $path or -l $path) {
32 opendir PATH, $path or die "Cannot opendir $path: $!";
33 my @names = readdir PATH;
35 for my $name (@names) {
36 next if $name eq '.' or $name eq '..';
37 $directory{$name} = data_for_path("$path/$name");
41 warn "$path is neither a file nor a directory\n";
46 sub dump_data_for_path {
47 my ($path, $data, $level) = @_;
48 if (not defined $data) {
50 print basename($path)."\n";
54 print basename($path).":\n";
55 foreach (sort keys %$data) {
56 dump_data_for_path("$path/$_", $data->{$_}, $level+1);
59 chdir "/home/jrmu/documents";
60 dump_data_for_path(".", data_for_path("."), 0);