是否可以告诉Config :: IniFiles模块以不会导致整个解析过程失败的方式处理"
中包含的多行值?我必须处理这样的ini文件,不幸的是我不能改变它的任何内容。
这就是它的样子
198 revive.msg.fm.email2= "
199 text text text
200 some more text
201 even more text
202
203 and some more"
尝试使用
解析文件 20 my $cfg_file = Config::IniFiles->new(
21 -file => '/path/to/config_test.ini',
22 ) || die Dumper \@Config::IniFiles::errors;
给了我
$VAR1 = [
'Line 199 in file /home/zzzpetscript/config_test.ini is mal-formed:
text text text',
...
];
我正在查看-allowcontinue 0|1
,但这只适用于我无法插入文件的尾随\
,因为我没有任何权限来更改那些ini文件我必须解析。
答案 0 :(得分:2)
CPAN文件说:
也可以在UNIX中定义多行或多值参数 “here document”语法:
Parameter=<<EOT value/line 1 value/line 2 EOT
您可以使用任何字符串代替“EOT”。请注意,无论如何 “&LT;&LT;”并且文本末尾出现的内容必须完全匹配,包括任何内容 尾随空白。
或者,作为配置选项(默认为关闭),继续 可以允许行:
[Section] Parameter=this parameter \ spreads across \ a few lines
你尝试过其中任何一种吗? (试图捏造别的东西是 可能很辛苦....)