Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Perl中读取属性文件时出现问题_Perl - Fatal编程技术网

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

在Perl中读取属性文件时出现问题,perl,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) {

我想使用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";
}
#/usr/bin/perl
我的%o;
在“abc.properties”或“die$”中打开我的$!;
while(){
$o{$1}=$2,而m/(\S+)=(\S+)/g;
}
以美元收盘;
用于(键%o){
我的@value_数组=@{$o{$};
打印“键为$且值为@values\n”;
}
输出为: 键是jdk,值是 关键是soa,价值是

我无法读取与键对应的值。我的目标是读取值,然后将其拆分为:


作为perl新手,任何帮助都将不胜感激

如果希望每个键只存储一个值,则无需创建值数组

for (keys %o) {
     print "Key is $_ and value is $o{$_}\n";
}
此外,在与正则表达式匹配的行上,应使用
if
而不是
。一条线怎么能匹配好几次


增加
使用严格;使用警告
会告知您所犯的一些错误(即混淆@value\u数组和@values)。

每个键是否只有一个值?而且,
使用严格的;使用警告。是的,对于每个键,只有一个值包含多个冒号:始终
使用strict
。始终
使用警告