file:请咨询没有文件的部分

时间:2014-10-13 22:20:26

标签: erlang

我正在写一个需要作为输入的escript正常的名单:

  

脚本" [{error_string,\"这已损坏\"}]"

现在我想做的就是将任意字符串解析为实际的支持者,通常我会将其写入文件,然后继续使用文件:查询文件以获取值 - 但这似乎有点过了top - 所以我的问题是,我如何做同样的事情,即将输入字符串解析为一个proplist而不将数据发送到文件?

2 个答案:

答案 0 :(得分:4)

M1 = "[{error_string, \"This is broken\"}].",
{ok, S1, _} = erl_scan:string(M1),
erl_parse:parse_term(S1).

返回

{ok,[{error_string,"This is broken"}]}

答案 1 :(得分:1)

最简单的方法是使用erl_eval,就像Odobenus Rosmarus answer一样,即使它看起来很复杂。只需要记住将.放在表达式的末尾。您可以在Erlang Central Wiki上阅读有关此主题的更多信息。

但是如果你构建escript以使用选项填充你的应用程序,我会看到完整的参数解析器。我之前使用的是https://github.com/jcomellas/getopt。项目是稳定的,有足够好的文档,并且确实应该做到了。它需要一点点配置,但创建的代码仍然可读。