Как я могу найти несколько файлов в одном шаблоне и вернуть совпадающие значения из последнего файла? - PullRequest
0 голосов
/ 06 апреля 2011

Я совершенно новичок в программировании на Perl. Пожалуйста, помогите мне сформировать логику для этого.

У меня много файлов в одном каталоге, например 1.txt, 2.txt, 3.txt, ..., n.txt.

Каждый файл содержит несколько данных в этом формате. Столбец ID будет уникальным для файла.

ID | Name  | Place   

1  | name1 | Chennai

2  | name2 | Mumbai

Там может быть изменение ID -1 может повторяться в другом файле. Поэтому мне нужно искать каждый идентификатор во всех файлах в каталоге и записывать атрибуты для каждого идентификатора в другой файл. Полученный файл должен иметь уникальные идентификаторы, а атрибуты должны быть из файла с последней датой создания.

Таким образом, в общем случае полученный файл будет основным списком идентификаторов и атрибутов.

Пожалуйста, помогите в этом отношении. Я могу только прочитать файл, выбрать его и поместить в другой файл. Может ли кто-нибудь помочь мне продвинуться вперед в этом.

Большое спасибо заранее

1 Ответ

3 голосов
/ 06 апреля 2011

Используйте хэш с идентификаторами в качестве ключей и сохраняйте значения из файлов в порядке отметок времени в этом хэше.
Вот прототип:

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;        
}  

Затем сохраните данные из хеша в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...