perl 读入多个文件进行操作

2025-04-30 13:43:55
推荐回答(4个)
回答1:

你可以按照你叙述的顺序来做。

打开md1.mdcrd文件读取内容-->做相应计算-->关闭md1.mdcrd文件
打开结果文件-->追加写入计算结果-->关闭结果文件
重复上述算法,分别将md2.mdcrd和md3.mdcrd的内容计算后将计算结果追加写入结果文件

另外,也可以先分别读取三个文件,将结算结果保存到三个结果变量中(也就是保存在内存中),然后最后一次性的写入到结果文件中。

回答2:

下面是我自己一直用的框架:
第一句和第二句是加一些限制,让它在语法可能有问题的时候报warning。

第三句是把要读的文件的全文件名(包括后缀)存到@ARGV里面。
第四句是@ARGV作品为main这个subroutine的输入变量。
while的那个循环是把@ARGV里面所有文件的每一行从<>里面读到默认的$_里面(每次读一行),其中<>自动和@ARGV里面的文件的内容发生关系。然后print就是把每次读到的存在$_的那一行打印出来。

use strict;

use warnings;
@ARGV = qw# input_file1.txt input_file2.txt #;

main(@ARGV);
sub main
{
while(<>)

{
print;
}
}

回答3:

@files=<*.mdcrd>;
foreach $file(@files){
open F, $file or die $!;
while(){
do your calculate;
}

}

回答4:

建一个文件列表,一行一个文件名

一行一行地读文件名,进行操作