Hi
This is one example of using recursion to solve it.
use strict;
my $path = '/var/www/html';
print "<ul>\n";
recurse_path($path, " ");
print "</ul>\n";
sub recurse_path {
my $path = shift;
my $padding = shift;
my $dir = $path;
$dir =~ s/.*\///g;
print "$padding<li><a href=\"$path\">$dir</a>\n";
my $has_subdir = 0;
foreach(glob("$path/*")) {
if(-d $_ && ! $has_subdir) {
print "$padding<ul>\n";
$has_subdir = 1;
recurse_path($_, $padding . " ")
}
elsif(-d $_) { recurse_path($_, $padding . " ") }
}
if($has_subdir) { print "$padding</ul>\n" }
}