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

Mat*_*iva 4 perl configuration-files

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

label:domain:username:password:path
Run Code Online (Sandbox Code Playgroud)

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

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

DVK*_*DVK 5

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

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

如果你正在寻找解析现有的格式,这种格式看起来是多了一个"配置"文件以逗号分隔的文件,所以我会说去用文字:: CSV(它可以让你选择一个分隔符在构造函数中,所以你可以做冒号分隔,而不是逗号分隔),或非常大的文件文本:: 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;
Run Code Online (Sandbox Code Playgroud)