#! /usr/bin/perl -w
use strict;
use Net::FTP;
my $ftp = Net::FTP->new("Address to ftp site);
print "Content-type: text/html\n\n";
print "
FTP Contents";
print "";
if($ftp->login("Username", 'password')){
lister(0,"ftp://toplevel/");
}
else{
print "FTP: Failed to login";
}
$ftp->quit;
print "";
#----subs----
sub lister{
my $lev = shift;
my $path = shift;
my @dirs;
my @files;
my @dirarray = $ftp->ls();
foreach my $item(@dirarray){
if($ftp->cwd($item)){
$ftp->cdup();
push @dirs,$item;
}
else{
push @files,$item;
}
}
my $buff="     " x $lev;
foreach my $dirs(@dirs){
print "$buff\|_ $dirs
";
$ftp->cwd($dirs);
lister($lev+1,$path."/".$dirs);
}
foreach my $file(@files){
print "$buff\|_ $file
";
}
$ftp->cdup();
}