2011-05-08 139 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}. 

依此類推。這取決於你的數據以及你想如何訪問它。