sub ls_ld { my @dir = split '/', $_[0]; my $ret_text; for (2 .. $#dir) { my $path = join '/', @dir[0..$_]; my $ls_ld = `ls -ld $path`; $ret_text .= $ls_ld; } $ret_text; } my %dir = ( home => '/home/tmbranno', other => '/home/tmbranno/src/Net/FTPServer/ARU/ftp-dir/t' ); map { chroot $dir{$_} or die sprintf "cannot chroot: $dir{$_}: $!\n all paths of this:\n%s", ls_ld($dir{$_}) ; } (keys %dir);