试试这个方法:
use strict;
use warnings;
sub get_paths {
my ($dir, $base) = @_;
my @path = ($dir);
while (1) {
$dir =~ s|(.*/).*/$|$1|;
unshift @path, $dir;
last if $dir eq $base;
}
return @path;
}
my @path = get_paths('e:/run/doc1/hi/aa/', 'e:/run/doc1/');
print "$_\n" for @path;
for (@path) {
open my $fh, '>', $_ . 'readme.txt' or die $!;
close $fh;
}