如何在一个模式中搜索多个文件并从最新文件返回匹配的值?

时间:2011-04-06 12:11:50

标签: perl

我对perl编程完全陌生。请帮我形成一个逻辑。

我在一个目录中有很多文件,例如1.txt2.txt3.txt,...,n.txt

每个文件都包含此格式的多个数据。 ID列在文件中是唯一的。

ID | Name  | Place   

1  | name1 | Chennai

2  | name2 | Mumbai

可以更改ID -1可以在不同文件中重复。所以我需要搜索目录中所有文件中的每个ID,并将每个ID的属性写入另一个文件。生成的文件应具有唯一的ID,并且属性应来自具有最新创建日期的文件。

所以BASICALLY结果文件将是ID和属性的主列表。

请帮助这方面。我只能读取文件并选择它并将其放在不同的文件中。谁能帮助我继续前进呢。

非常感谢你提前

1 个答案:

答案 0 :(得分:3)

使用带有ID作为键的哈希,并以时间戳顺序将文件中的值存储在该哈希中 这是一个原型:

my %data;

for my $file (sort { -M $a <=> -M $b } @files) {
    my @data = process_file($file); # an array of hashrefs like { id => 1, name => "name1", place => 'Chennai' }
    $data{$_->{id}} = $_ for @data;        
}  

然后将散列中的数据存储到文件中。