2010-07-16 58 views
0

我是ruby的新手,但它并不是真正的来自perl的改变的激烈,反正写了一个简单的脚本来将我的perl Data :: Dumper输出转换成yaml configs,我的问题是我使用eval来实现这一点,并看到我可能会喜欢其他人使用这个脚本,我想消除更理智的eval。正在寻找一个eval的替代品

例如:

输入文件包含

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

方法在

# read in file here ... 
eval(stringified_file) 
print $VAR1.to_yaml 

输出读它

object: 
    some_key: some_value 

谢谢:)

回答

5

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

+0

我没有这样做的奢华,另一个问题是,有数以百计的脚本预先执行相同的操作。我们很遗憾地将它们用作配置文件。 – sploit 2010-07-16 14:01:27

+0

嗯。将Dumper出口保存为配置文件是您可以重新访问的架构决策吗?从长远来看,这似乎是一个糟糕的主意。 – 2010-07-17 20:59:06

0

如果您无法更改源应用到输出YAML,使用Kernel#load

require 'yaml' 

load 'dumped_file', true 
puts $VAR1.to_yaml