【问题标题】:INI style configuration file syntax check with Perl使用 Perl 进行 INI 样式配置文件语法检查
【发布时间】:2019-11-13 15:10:39
【问题描述】:

需要确保用户提供的 INI 文件没有语法错误,例如

a) 意外语法

[general]zzz
name=test

b) 未填充的列

[custom]
name=

我能知道我们是否可以检查一下吗?

【问题讨论】:

  • 你好像忘了问问题
  • 是的。我们可以检查一下。
  • INI 故意是一种非常宽松的自我更正格式,如 HTML。第一个例子一般要么是一个名为zzz\nname的键,要么是一个名为zzz的键,没有值,第二个是一个空值的键。如果任何键包含换行符或任何值是空字符串,则可能会引发错误。或者 Config::INI::Reader 更严格一些(但它仍然会接受第二个示例,因为这是一个完全有效的空字符串值)。
  • 在这种情况下 zzz 没有 '=' 符号将认为是有效的密钥,并且它用带有名称的 '\n' 分隔。但是微小的配置没有给我任何警告和错误。

标签: perl ini


【解决方案1】:

使用解析器! CPAN 有很多 INI 风格的配置解析器:

https://metacpan.org/search?q=config+ini

【讨论】:

  • 我实际上在使用 Config Tiny 解析器来完成我的工作,但是,在使用它之前我没有找到任何可以检查语法的东西,如果语法不正确,解析器会给我错误的数据正确的。这就是为什么我想在输入解析器之前检查它的原因。
  • @user1550596 “语法不正确”到底是什么意思?
  • 请检查我上面的例子,如果 zzz 没有 '=' 所以这可能不正确,但是 config tiny 不会报告任何警告或错误。
猜你喜欢
  • 2016-08-17
  • 2012-03-12
  • 1970-01-01
  • 1970-01-01
  • 2013-02-03
  • 1970-01-01
  • 2012-04-18
  • 2013-02-27
  • 2016-06-05
相关资源
最近更新 更多