在perl 怎么进入各个目录?
比如:
在e:/run/doc1/hi/aa/
在run目录下有一个test.pl
这个test.pl中,需要进入doc1、hi和aa这3个目录,都建立一个readme.txt空文件。
怎么写test.pl?
[解决办法]
#!/usr/bin/env perluse 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;}
[解决办法]
使用函数的参数,可以避免写死在程序里的信息。