Как я могу обрабатывать файлы конфигурации в Perl? - PullRequest
4 голосов
/ 03 октября 2010

Я выполняю рефакторинг старого скрипта, который выполняет некоторые операции на разных сайтах. Необходимо использовать файл конфигурации, который теперь является текстовым файлом, который анализируется вручную в следующем формате:

label:domain:username:password:path

Конечно, количество строк потенциально не ограничено.

Я знаю, что есть несколько модулей, которые имеют дело с файлами конфигурации. Какой из них лучше для этой ситуации?

1 Ответ

5 голосов
/ 03 октября 2010

Если вы хотите изменить формат, посмотрите рекомендации здесь:

Как вы управляете файлами конфигурации в Perl?

Если вы хотите проанализировать существующий формат , этот формат выглядит скорее как разделенный запятыми файл, чем как файл "конфигурации", поэтому я бы сказал, что нужно использовать Text :: CSV (он позволяет вам выбрать символ разделителя в конструкторе, так что вы можете использовать двоеточие вместо запятой) или для очень больших файлов Text :: CSV_XS.

use Text::CSV; # Example adapted from POD

my @rows;
my $csv = Text::CSV->new ( { sep_char => ":" } )  
             or die "Cannot use CSV: ".Text::CSV->error_diag ();

open my $fh, "<:encoding(utf8)", "test.conf" or die "test.conf: $!";
while ( my $row = $csv->getline( $fh ) ) {
    push @rows, $row; # $row is arrayref containing your fields
}
$csv->eof or $csv->error_diag();
close $fh;
...