我正在用erlang开发一个程序,它需要在启动时读取配置文件,然后将配置数据加载到数据库。最初,使用Ruby或C i可以加载YAML文件或conf文件。我想知道,在erlang的世界里,有没有什么好方法可以加载配置文件?谢谢!
这是我需要加载的YAML样式文件,我不关心配置文件的样式
a:
a1:
a2: 1
a3: 2
b:
b1:
b2: 3
b3: 4
答案 0 :(得分:32)
如果将配置数据存储为Erlang术语,则可以使用内置的file:consult/1函数对其进行解析。
如何构建数据取决于您自己。例如,您可以使用proplists:
{a, [{a1, [{a2, 1}, {a3, 2}]}]}.
{b, [{b1, [{b2, 3}, {b3, 4}]}]}.
或键值作为原子列表的键值元组:
{[a, a1, a2], 1}.
{[a, a1, a3], 2}.
{[b, b1, b2], 3}.
{[b, b1, b4], 4}.
或者将键作为字符串/字符串:
{"a.a1.a2", 1}.
{"a.a1.a3", 2}.
{"b.b1.b2", 3}.
{"b.b1.b4", 4}.
或者用键作为原子:
{a.a1.a2, 1}.
{a.a1.a3, 2}.
{b.b1.b2, 3}.
{b.b1.b4, 4}.
等等。这取决于您的数据以及您希望如何访问它。