perl如何获取当前目录下指定后缀的文件并对文件的每行进行处理
时间: 2024-10-29 14:24:00 浏览: 39
在Perl中,你可以使用内置模块File::Find来遍历当前目录及其子目录,然后结合File::Basename或Path::Tiny模块来筛选出特定后缀的文件。接着,你可以使用`open()`函数打开每个文件并逐行读取。这里有一个简单的示例:
```perl
use strict;
use warnings;
use File::Find;
use File::Basename;
# 定义要查找的文件后缀
my $suffix = '.txt'; # 可替换为你需要的后缀
sub process_dir {
return if -d; # 如果是目录,则跳过
my @files = grep { -f && /\.($suffix)$/i } glob("*"); # 检查是否是文件且匹配后缀
foreach my $file (@files) {
open(my $fh, '<', $file) or die "Could not open file '$file' $!";
while (my $line = <$fh>) {
# 对每一行进行处理
chomp $line;
# ...在这里添加你的处理逻辑...
print "$line\n"; # 输出原样或做进一步操作
}
close $fh;
}
}
find(\&process_dir, './'); # 从当前目录开始搜索
```
在这个例子中,我们首先定义了一个后缀变量 `$suffix`,然后定义了一个名为 `process_dir` 的回调函数,在这个函数中,我们使用 `grep` 和 `glob` 来找到所有`.txt` 文件。然后对每个找到的文件打开并读取每一行。
阅读全文