如何在Perl中处理配置文件?

时间:2010-10-02 21:36:28

标签: perl configuration-files

我正在重构一个在不同站点上执行某些操作的旧脚本。它需要使用配置文件,该文件现在是具有以下格式的手动解析文本文件:

label:domain:username:password:path

当然,行数可能是无限的。

我知道有一些模块可以处理配置文件。对于这种情况哪一种最好?

1 个答案:

答案 0 :(得分:5)

如果您希望更改格式,请查看此处的建议:

How do you manage configuration files in 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;