在Perl中读取属性文件时出现问题

时间:2014-04-17 11:44:37

标签: perl

我想使用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的新手,任何帮助都将受到赞赏!!

1 个答案:

答案 0 :(得分:2)

如果您期望并且每个键只存储一个值,则无需创建值数组。

for (keys %o) {
     print "Key is $_ and value is $o{$_}\n";
}

此外,应在与正则表达式匹配的行上使用if而不是while。一条线如何匹配几次?

添加use strict; use warnings;会告诉您有关您犯的错误(即混淆了@value_array和@values)。