我有关于INI文件的另一个问题。我的老师更新了文件的配置。现在我的代码无法读取这个新的配置文件。它的格式已经改变。如何在perl中的INI文件中读取这种格式?
[section1]
value1
value2
正如您所看到的,INI文件的格式现在只包含值。参数消失了。 perl怎么读这行?它没有任何参数,只剩下值。我只想阅读值。我之前使用Config :: Tiny来读取该行,但我似乎无法解决这个问题:
my $file = "file directory";
my $Config = Config::Tiny->read($file);
$Config->{"section1"}->{_};
我的代码错了吗?因为我无法从此代码中获取输出。任何人都可以帮我解决这个问题吗?谢谢。
答案 0 :(得分:0)
你需要自己处理:
#!/usr/bin/perl
use 5.10.0;
sub read_not_ini
{
my $file = shift;
my %values;
my $section;
open my $fh, '<', $file or die "Can't read $file: $!";
while (<$fh>)
{
# skip comments, blank lines.
next if /^\s*#/ or /^\s*$/;
# don't need/want end-line character.
chomp;
if (/^\[([^\]]+)\]/)
{
my $s = $1;
$section = $values{$s} //= [];
}
elsif($section)
{
push @$section, $_;
}
else
{
say STDERR "$file: values without a section: line $.";
}
}
return \%values;
}
my $Config = read_not_ini(shift); # pass in as param
say for @{$Config->{"section1"}};