4
我正在重构一个在不同站点上执行一些操作的旧脚本。它需要使用一个配置文件,其现在与此格式的手动解析的文本文件:当然如何在Perl中处理配置文件?
label:domain:username:password:path
的行的数量是潜在无限。
我知道有几个模块处理配置文件。哪种情况最适合这种情况?
我正在重构一个在不同站点上执行一些操作的旧脚本。它需要使用一个配置文件,其现在与此格式的手动解析的文本文件:当然如何在Perl中处理配置文件?
label:domain:username:password:path
的行的数量是潜在无限。
我知道有几个模块处理配置文件。哪种情况最适合这种情况?
如果您正在寻找变化格式,请看看这里的建议:
How do you manage configuration files in Perl?
如果你正在寻找解析现有格式,这种格式看起来更一个逗号分隔的文件比“配置”文件,所以我会说去与文本:: 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;
也看看'Text :: xSV' - 我碰巧认为它的界面比Text :: CSV更明智。 – hobbs 2010-10-03 03:15:01