sub print_rec {
####
opendir DIR, shift;
##
##
if(!/\.|\.\./ && -d $_)
##
##
return print_rec($_);
##
##
elsif (!-d) { ... }
##
##
#!/usr/bin/env perl -l
use strict;
use warnings;
use autodie;
use constant INDENT => ' ' x 4;
my $starting_dir = '.';
print_dir_listing($starting_dir, '');
sub print_dir_listing {
my ($path, $indent) = @_;
opendir my $dh, $path;
for (readdir $dh) {
next if /^(?:\.|\.\.)$/;
if (-d "$path/$_") {
print "${indent}DIR: $_";
print_dir_listing("$path/$_", $indent . INDENT);
}
else {
print "$indent$_";
}
}
}
##
##
...
DIR: mastering_perltk_demo_code
mastperltk_examples.MANIFEST
mastperltk_examples.tar.gz
DIR: mptk-code14
DIR: ch01
hello-world
DIR: ch02
play-with-pack1
play-with-pack2
DIR: ch03
banner
fontviewer
DIR: ch04
...