Ищете альтернативу eval

76
4

Я новичок в рубине, но на самом деле это не так уж сильно изменится, исходя из Perl. В любом случае мы создали простой script для преобразования моих gobs perl Data:: Dumper в yaml configs, моя проблема Я использую eval для достижения этой цели и, видя, что мне могут нравиться другие использовать этот script в один прекрасный день, я бы хотел исключить eval для чего-то более разумного.


Пример:


входной файл содержит


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

чтобы прочитать его в


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

Выход


object:
some_key: some_value

Спасибо:)

спросил(а) 2021-01-25T22:05:57+03:00 4 месяца, 4 недели назад
1
Решение
108

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

ответил(а) 2021-01-25T22:05:57+03:00 4 месяца, 4 недели назад
45

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

require 'yaml'

load 'dumped_file', true
puts $VAR1.to_yaml

ответил(а) 2021-01-25T22:05:57+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема