2011-05-08 73 views
18

我正在开发一个erlang程序,它需要在启动时读取配置文件,然后将配置数据加载到数据库。最初,使用Ruby或C我可以加载YAML文件或conf文件。我想知道,在erlang的世界中,有没有什么好的方法来加载配置文件?谢谢!如何解析erlang的配置文件?

这是YAML样式文件,我需要加载,如果存储配置数据为二郎方面,我不在乎配置文件

a: 
    a1: 
    a2: 1 
    a3: 2 
b: 
    b1: 
    b2: 3 
    b3: 4 

回答

31

的风格,你可以使用内置的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}. 

或用钥匙作为字符串/ charlists:

{"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}. 

依此类推。这取决于你的数据以及你想如何访问它。