Я новичок в perl, и эта вещь меня заводит. У меня есть хэш, как показано нижеПечать значения массива из хэша в perl
%temp = (
a_collection => [\%first, \%second]
)
Я хочу, чтобы элементы массива, как строки, так что я могу использовать их в качестве аргументов в цикле. У меня есть код
foreach $item (@{$temp{'a_collection'}})
{
<convert to json> $item #convert each of the above hash to a json blob
<write to file> $file #write first blob to file "first.json" and so on
}
У меня есть конвертация в часть json. Я могу напечатать его на stdout. Теперь я хочу записать его в файл. Здесь $ file должен иметь имя «первый» и «второй». Таким образом, цикл создаст два файла с именами хэш-переменных, которые находятся в вышеупомянутом хэше. Я хочу, чтобы имена файлов совпадали, поэтому я могу отслеживать, что создается.
Редактировать: Основная посылка проста. Независимо от того, что я делаю, будь то кодировка json и т. Д., Я хочу, чтобы имена переменных хеши были строкой. Поэтому в массиве выше я могу иметь хэш с любым именем \% somename, в цикле я хочу, чтобы фактическая строка «somename» в другой переменной. Как и выше, я могу использовать эту строку в качестве имени файла, которое создается. Я не могу изменить вышеупомянутую структуру хэша. Его просто там, созданный кем-то другим, я могу получить к нему доступ.
Благодаря
Ваш цикл не соответствует данным которую вы разместили выше. Что такое * фактический * код, который вы используете? –
@ user775093 что вы на самом деле пытаетесь? Вы ссылаетесь на хэш внутри хеша массива? Если вы хотите это сделать, см. Ниже ответ. Или что-нибудь еще отредактируйте свой пост? – mkHun
Вы полностью изменили вопрос, и он все еще так же неясен, как и прежде, но основная предпосылка моего ответа по-прежнему остается прежней: хеш-ключи. –