【发布时间】:2017-07-17 18:36:20
【问题描述】:
我有一些包含大量行列表的 txt 文件,例如:
file_1.txt file_2.txt file_3.txt
XP_001703830.1 XP_001703820.1 XP_001703810.1
XP_001703836.1 XP_001703815.1 XP_001703805.1
XP_001703844.1 XP_001703834.1 XP_001703844.1
假设我在一个文件夹中有 10 个或更多文件,我想读取所有文件并将内容存储在一个数组中,我使用过这段代码,但它只存储文件的一行,而不是所有的线条!
#!/usr/bin/perl -w
use strict;
my @files = glob("*.txt");
my @ID;
for my $file(@files) {
open IN, '<', $file or die "$!";
while (<IN>) {
my $fields = $_;
push @ID, $fields;
}
}
foreach (@ID){
print "$_\n";
}
close IN;
exit;
我想要的是将所有行存储在一个数组中,例如:
XP_001703830.1
XP_001703836.1
XP_001703844.1
XP_001703820.1
XP_001703815.1
XP_001703834.1
XP_001703810.1
XP_001703805.1
XP_001703844.1
非常感谢!!!
【问题讨论】:
-
第一个
close IN;应该在for循环下,您正在打开一个txt 文件。 -
我完全能够使用您的确切代码将所有行存储在一个数组中!你在
@ID得到什么? -
你为什么要改造
cat?