Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Из строки в код |
Автор: JamesMorgan 9.4.2012, 12:48 | ||
Добрый день, пишу вам в надежде найти решение, суть такая есть текстовый файл его содержимое:
Можно ли при чтение файла превратить эту строчку в анонимный хеш? Если бы строки распологались на каждой строчке и без { } то тогда я бы обработал данные и сделал бы анонимный хеш, но нужно строго в таком варианте. ![]() |
Автор: reiserford 9.4.2012, 12:57 |
eval |
Автор: Pfailed 9.4.2012, 13:16 |
А как бы вы сделали если бы они стояли на разных строках? |
Автор: vadiml 9.4.2012, 13:33 |
JamesMorgan JSON конверторы именно этим и занимаются. Можете им строку скормить, предварительно чуть поправив, или посмотреть код в их модулях. |
Автор: JamesMorgan 9.4.2012, 14:02 | ||||
Вот так бы сделал, но это на скорую руку:
Ок, буду смотреть в сторону JSON |
Автор: Pfailed 9.4.2012, 14:19 | ||
Для вашего простейшего случая подойдет регулярное выражение:
Но если требуется уметь распозновать вложенные хеши и штуки типа {a => "x => {y => z}"}, то задача становится поинтересней. Тут я могу порекомендовать модуль Regexp::Grammars. |
Автор: arto 9.4.2012, 14:27 |
# cat > /tmp/tst { id => 1, path => 65, url => 31 } # perl -MData::Dumper -le 'print Dumper do $ARGV[0]' /tmp/tst $VAR1 = { 'url' => 31, 'path' => 65, 'id' => 1 }; # |