我想使用perl读取属性文件。 我的属性文件abc.properties的格式为:
jdk=Path1:Path2:PathN
soa=Path1:Path2:PathN
这是我的代码:
#!/usr/bin/perl
my %o;
open my $in, "abc.properties" or die $!;
while(<$in>) {
$o{$1}=$2 while m/(\S+)=(\S+)/g;
}
close $in;
for (keys %o) {
my @value_array = @{$o{$_}};
print "Key is $_ and value is @values\n";
}
输出是: 键是jdk,值是 关键是soa,价值是
我无法读取与该键对应的值。我的目标是读取该值,然后将其拆分:
成为perl的新手,任何帮助都将受到赞赏!!
答案 0 :(得分:2)
如果您期望并且每个键只存储一个值,则无需创建值数组。
for (keys %o) {
print "Key is $_ and value is $o{$_}\n";
}
此外,应在与正则表达式匹配的行上使用if
而不是while
。一条线如何匹配几次?
添加use strict; use warnings;
会告诉您有关您犯的错误(即混淆了@value_array和@values)。