$dir = shift || '.'; use File::Find; use File::Spec::Functions 'rel2abs'; find sub { (my $full = $File::Find::name) =~ tr[/][\\]; printf "%s %6d %s\n", (-d $_ ? 'd' : 'f'), -s _, $full; }, rel2abs($dir);