my $search_what = shift || die "no search criteria provided\n"; my $search_where = shift; my $file = qr/\|(?!\+\S{3})(\s.*?)$argv/i; my $clean = qr/^\W+(.+?)\W+$/; $dir = -d $dir ? $dir : '.'; for(`tree /a /f $search_where`){ /(\\|\+)-{3}/ and $dir= $_ and next; if (/$search_what/) { s/$clean/$1/ for $_, $dir; $dir ? print "dir: $dir$/","file: $_$/$/" : print "dir: . $/","file: $_$/$/"; } }