мой первый пост здесь :)
Я написал сценарий python, который выполняет некоторую работу, и в конце сценарий должен записать часть своего вывода в perlmodule.
Это perlmodule является частью Testing-Framework, написанного на Perl, но не поддающегося изменению (я не могу использовать строгий JSON для этого типа данных).
Мое текущее решение не является оптимальным (как я думаю) и Я хочу оптимизировать код. Я не так много о perl, я только начал его использовать.
Мое текущее решение состоит в том, чтобы создать «String» внутри python, который имеет правильный синтаксис Perl Ha sh, для добавления в файл perlmodule (Этот файл содержит много хэшей и функции), в основном я хочу добавить к этому файлу perlmodule из python.
# Example data generated from the py script
name_of_this_hash = "some_perl_hash_name"
name_of_folder = "some_testfolder"
name_of_file = "some_testfile"
description = "some_perl_description"
folder_and_name = name_of_folder + "/" + name_of_file
# Actual Export / Conversion to Perl Hash
string = "\n \
\n \
\n" + name_of_this_hash + " => \
\n{ \
\n _desc => '" + description + "', \
\n params => { message => '', additional_val => 0 }, \
\n consts => { enabled => 'net,mem', \
\n reports => 'net,mem', \
\n }, \
\n files => { \
\n storage_loc_1 => '" + folder_and_name + ".txt', \
\n }, \
\n debDesc => $debugDesc, mainvalues => $mainvalDesc, \
\n},"
# Dummy Print, string would be appended to perlmodule
print(string)
Код Python выдаст следующее Perl Ха sh:
some_perl_hash_name =>
{
_desc => 'some_perl_description',
params => { message => '', additional_val => 0 },
consts => { enabled => 'net,mem',
reports => 'net,mem',
},
files => {
storage_loc_1 => 'some_testfolder/some_testfile.txt',
},
debDesc => $debugDesc, mainvalues => $mainvalDesc,
},
Этот га sh окружен следующим:
our $TESTS =
{
# Generated Hashes go here
}
# Some functions that define what the test does
Фреймворк в других местах клонирует этот «ИСПЫТАНИЯ» и выполняет функции на основе значений, которые были установлены (сгенерированы). Но дальнейшее, вероятно, не имеет значения.
Как видите, я пишу строки с синтаксисом Perl Ha sh и добавляю некоторые переменные через python с объединением строк. Я хотел бы иметь возможность иметь его "чище" и не использовать строки для составления этого Ha sh для Perl.
Вывод string
будет тем, что я добавляю в модуль Perl.
Как я могу создать это Perl Ха sh непосредственно в python без использования создания строк с правильным синтаксисом и т. Д. c. быть вставленным в файл perlmodule?
Спасибо за несколько советов, Мануэль
РЕДАКТИРОВАТЬ: Изменено составление строк, как указано в первом комментарии:)
EDIT2: Теперь я понял, что то, что я ищу, называется " Ha sh "или" Ha sh Table "(вместо" Object ") в Perl (Unstructured Key-Value), сравнимое с" dict "в python - я улучшил свой вопрос, чтобы быть более очистить / указать c
EDIT3: добавлен пример вывода из сгенерированного python кода