I want to read out a directory recursively to print the data-structure in an HTML-Page with Template::Toolkit. But I\'m hanging in how to save the Paths and Files in a form that
You should always use strict and warnings to help you debug your code. Perl would have warned you for example that @files
is not declared. But the real problem with your function is that you declare a lexical variable @paths
on every recursive call to list_dirs
and don't push the return value back after the recursion step.
push @paths, list_dir($eachFile)
If you don't want to install additional modules, the following solution should probably help you:
use strict;
use warnings;
use File::Find qw(find);
sub list_dirs {
my @dirs = @_;
my @files;
find({ wanted => sub { push @files, $_ } , no_chdir => 1 }, @dirs);
return @files;
}