【问题标题】:Parse INI in Perl (list format)在 Perl 中解析 INI(列表格式)
【发布时间】:2019-02-25 05:22:22
【问题描述】:

在 Perl 中解析 ini 文件的最佳方法是什么?

文件格式如下:

[group1]
value1
value2
value3

[group2]
value1
value2
value3
value4

[group3]
value1
value2

【问题讨论】:

  • 看起来 CPAN 上有用于阅读它们的选项。 Config::INI等
  • 配置::IniFiles
  • 我看过但格式不同。大多数人期望“param=value”格式
  • 如果它没有param=value 格式,则为it's not an INI file,而您的问题是“我如何解析有点像但不太像INI 文件的东西?”跨度>
  • 到目前为止你尝试过什么?你有任何错误吗?实际输出与预期输出有何不同?您现有的解决方案有什么问题?

标签: perl parsing ini


【解决方案1】:

您没有告诉我们预期的数据格式或显示任何现有代码,因此不可能知道您要查找的内容,但这应该可以让您至少完成 90% 的目标:

use strict;
use warnings;

use Data::Dumper;

my %config;
my $group = '';

while (<DATA>) {
    chomp;
    next unless /\S/;

    if (/^\[([^]]+)\]/) {
        $group = $1;
        next;
    }

    push(@{$config{$group}}, $_);
}

print Dumper(\%config);

__DATA__
[group1]
value1
value2
value3

[group2]
value1
value2
value3
value4

[group3]
value1
value2

【讨论】:

  • 他应该使用 CPAN 中可用的软件包之一,而不是自己动手
  • @EdwardKirton 你推荐哪个模块?
  • Config::Simple 好用。
  • @EdwardKirton Config::Simple 是否适用于问题中的文件格式?没有。
  • 给出的示例文本不是正确的 INI 格式,这是问题指定的,可能只是 OP 中的一个错误。我的观点是,最好使用标准化的文件格式,并且有许多强大的包可供使用。
猜你喜欢
  • 1970-01-01
  • 2015-07-02
  • 2014-05-14
  • 2018-06-24
  • 2013-08-07
  • 1970-01-01
  • 1970-01-01
  • 2012-06-08
  • 2021-01-02
相关资源
最近更新 更多