寻找eval的替代方案

时间:2010-07-16 02:26:04

标签: ruby eval

我是ruby的新手但是它并不是真的那种来自perl的变化,反正已经写了一个简单的脚本来将我的gl perl Data :: Dumper输出转换成yaml配置,我的问题是我我正在使用eval来实现这一点并且看到我可能希望其他人有一天使用这个脚本我想消除eval以获得更加理智的东西。

示例:

输入文件包含

$VAR1 = { 'object' => { 'some_key' => 'some_value' } }

中读取它的方法
# read in file here ...
eval( stringified_file )
print $VAR1.to_yaml

输出

object:
  some_key: some_value

谢谢:)

2 个答案:

答案 0 :(得分:5)

在Perl端,您可以将数据结构输出到YAML(我喜欢YAML :: Syck),然后在Ruby端读取数据作为YAML。这样你就不需要做一个评估。

答案 1 :(得分:0)

如果您无法将源应用程序更改为输出YAML,请使用Kernel#load

require 'yaml'

load 'dumped_file', true
puts $VAR1.to_yaml