我有幾個數據文件是製表符分隔的。我需要提取這些數據文件某一列中的所有唯一值(比如第25列),並將這些值寫入輸出文件以供進一步處理。我該如何在Perl中執行此操作?記住我需要考慮同一個文件夾中的多個文件。從Perl中的多個文件中提取唯一值
編輯:我到目前爲止所做的代碼就是這樣。
#!/usr/bin/perl
use warnings;
use strict;
my @hhfilelist = glob "*.hh3";
for my $f (@hhfilelist) {
open F, $f || die "Cannot open $f: $!";
while (<F>) {
chomp;
my @line = split /\t/;
print "field is $line[24]\n";
}
close (F);
}
的問題是我怎麼有效地創造獨特價值的散列/陣列,因爲我讀的每個文件的每一行。或者,如果我填充整個數組然後刪除重複項,速度會更快嗎?
@davorg嗯,我很堅持的基本問題本身。首先,我如何一次讀取多個文件。下一個僅在我讀取每個文件時考慮獨特的值。我猜可以使用Find :: File包。 – sfactor 2011-02-02 12:17:58
@DVK yes是已經在Perl中的較大代碼的一部分。 – sfactor 2011-02-02 12:19:55
您通常不應該使用split來分析X分隔的文件。除了最微不足道的情況外,這還不夠 - 例如不處理字段中的X(分隔符),或者引用的字段。雖然 – DVK 2011-02-02 15:50:32