我是Perl的新手。我必须完成一项任务。我被给了一个目录,在该目录中有130个子目录。从这些目录有报告子目录和报告,有一个.txt文件,我想从该文件中获取模式。
同样,我必须为所有人做这件事并获得模式。
任何人都可以帮助您提供示例代码或如何操作吗?
非常感谢任何帮助。
答案 0 :(得分:2)
从这开始:
#!/bin/env perl
use strict; use warnings;
my ($dir) = @ARGV;
$dir // die "No dir supplied";
die "Dir not found: $dir" unless (-e $dir);
die "Not a dir: $dir" unless (-d $dir);
my @files = <$dir/*/txtfile.txt>;
foreach my $file (@$files) {
my $file_contents = undef;
# read the patten from file..
open (my $fh, '<', $file) or die "Can't open $file. $!";
# Read the file contents here..
{
local $/ = undef;
$file_contents = <$fh>;
}
close $fh;
# Do something more
}
此方法称为文件通配。使用专门编写的模块有更好的方法,但这有点紧迫。它与将ls -l mydir/*/txtfile.txt
输入终端窗口的方式相同。