#!/usr/bin/perl # # baumrekursion mit Tie::Dir # use File::Spec; use Data::Dumper; use Tie::Dir; sub scandir { my ($dir, $base) = @_; defined $base or $base = ""; my %this_dir = (); my $abs_dir = File::Spec->catfile ($base, $dir); tie my %dir, Tie::Dir, $abs_dir; foreach (grep {not m/^(\.|\.\.)$/} keys %dir) { my $dirptr = File::Spec->catfile ($abs_dir, $_); -d $dirptr and $this_dir{$_} = {scandir ($_, $abs_dir)} or -f $dirptr and $this_dir{$_} = ""; } untie %dir; return %this_dir; } my %dir = scandir (File::Spec->rel2abs (File::Spec->curdir ())); print Dumper \%dir;