我正在写一个需要作为输入的escript正常的名单:
脚本" [{error_string,\"这已损坏\"}]"
现在我想做的就是将任意字符串解析为实际的支持者,通常我会将其写入文件,然后继续使用文件:查询文件以获取值 - 但这似乎有点过了top - 所以我的问题是,我如何做同样的事情,即将输入字符串解析为一个proplist而不将数据发送到文件?
答案 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。项目是稳定的,有足够好的文档,并且确实应该做到了。它需要一点点配置,但创建的代码仍然可读。