我有一个名为ALLEQData的文件夹,其中我有100个以“.ndk”结尾的文件,例如'jan05.ndk','feb05.ndk'等。 使用Perl脚本我想打开以“.ndk”结尾的每个文件,读取该文件中包含的信息并将其放在输出文件中。 之前我只需打开一个文件并阅读它,我用过它:
my $filename = "jan76_dec10.ndk";
open FILEEQ, "<$filename"
or die "can't open '$filename' for reading: $!";
close FILEEQ;
$icount = 0;
for ($j=0; $j<@equ_file; $j++) .....etc
然后阅读信息。我可以读取信息并将其排序到我想要的输出中。
我不知道怎么做,是如何打开所有以“.ndk”结尾的文件,一个接一个地进行读取和排序,关闭该文件,然后转到下一个文件? / p>
希望这很清楚。
答案 0 :(得分:7)
使用glob:
my @filenames = glob('*.ndk');
for my $filename (@filenames) {
open my $fh, '<', $filename
or die "can't open '$filename' for reading: $!";
# read/sort file
close $fh;
}
答案 1 :(得分:3)
答案 2 :(得分:1)
您还可以从命令行中读取文件名:
while ($#ARGV > -1) {
my $filename = shift;
open my $fh, '<', $filename
or die "can't open $filename for reading: $!";
# ...
close $fh;
}
然后使用通配符表达式调用perl脚本:
your-script.pl *.ndk