Ее жесткие от прочтения вашего вопроса, чтобы знать, что именно вы пытаетесь достичь, но моя интерпретация этого является то, что вы хотите, чтобы извлечь анонимный хэш выделенного Защиту и хранить его в другой хэш. Затем вы хотите напечатать этот хэш в виде массива. Я также включил примеры для печати только ключей значений хэша.
use strict;
use Data::Dumper;
my %first_hash = (
a1 => '1',
a2 => '2',
def => {
d => 'x',
e => 'y'
}
);
my %second_hash = %{$first_hash{'def'}};
my @full_array = %second_hash;
my @keys_array = keys %second_hash;
my @values_array = values %second_hash;
print Dumper (\%first_hash);
print Dumper (\%second_hash);
print "full array: ", join(' ',@full_array), "\n";
print "keys array: ", join(' ',@keys_array), "\n";
print "values array: ", join(' ',@values_array), "\n";
ВЫВОД
$VAR1 = {
'a2' => '2',
'def' => {
'e' => 'y',
'd' => 'x'
},
'a1' => '1'
};
$VAR1 = {
'e' => 'y',
'd' => 'x'
};
full array: e y d x
keys array: e d
values array: y x
я разочарован тем, что я не в состоянии четко описать мой вопрос, я просто хочу знать, что мы можем создать новый хэш от существующего хэша, которые включают некоторую часть от этого хеша, – user3887070
Вы смотрите на часто задаваемые вопросы о Perl? Существует целый набор, посвященный манипулированию структурами данных: http://perldoc.perl.org/perlfaq4.html –
было бы полезно показать как ваш ввод, так и то, что вы ожидаете в выходе. Также немного выдержки из того, что вы пробовали. –