В поисках альтернативы eval - PullRequest
0 голосов
/ 16 июля 2010

Я новичок в ruby, но это не так уж радикально по сравнению с perl, в любом случае я написал простой скрипт для преобразования моих выходных данных 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 ]

5 голосов
/ 16 июля 2010

На стороне Perl вы можете вывести свои структуры данных в YAML (для этого мне нравится YAML :: Syck), а затем прочитать данные как YAML на стороне Ruby.Таким образом, вам не нужно делать eval.

0 голосов
/ 16 июля 2010

Если вы не можете изменить исходное приложение для вывода YAML, используйте Kernel # load :

require 'yaml'

load 'dumped_file', true
puts $VAR1.to_yaml
...