С помощью следующего кода я могу получить данные, хранящиеся в хэше, из базы данных и распечатать их:
use Data::Dumper;
my $fdx = $s->field(); # get Hashreference from Database
print Dumper($fdx); # print out Hash
(Важная часть) Вывод выглядит следующим образом:
$VAR1 = bless( {
'selectable' => 'true',
'_PARENT_OBJECT' => bless( {
'dirtyFlag' => 1,
'path' => undef,
'testItems' => [],
'data' => {
'TEST_10' => {
'atm_rundatahistory' => {
'1523964918' => {
'atm_prid' => {
'content' => '',
'label' => 'Problem Report IDs',
'raw' => ''
}, ...
'1523964410' => {
'atm_prid' => {
'label' => 'Problem Report IDs',
'raw' => '23361234',
'content' => '23361234'
}, ...
'Test_10' является одним из сотен тестов, '1523964918' является одной из многих временных меток Unix, поэтому в основном это 32-разрядное целое число, но я не знаю, какие числавременные метки содержат.
Как распечатать / получить доступ к значениям 'content' (в данном случае '23361234') самых внутренних Хэшей, для всех тестов и Unixметки времени, если они существуют?
С этого момента я буду описывать мои мысли и то, что я пробовал, нет необходимости читать дальше для этого вопроса.
Я думаю, что код, который я ищу, выглядит примерно так:
foreach my $val($fdx{_PARENT_OBJECT}{data}{"TEST_*"}{atm_rundatahistory}{"********"}{atm_prid}{content})
print("\n$val");
Однако я не знаю точного синтаксиса и не знаю, какие заполнители установить для "Test_10"
,так как существует множество тестовых чисел, например, "...Test_132...Test_134"
и метки времени Unix могут быть любыми 32-битнымиЦелое число, так что я думаю, что я могу использовать начало как заполнитель?например, "********"
.
После нескольких часов поиска в Интернете я не нашел понятного учебника о том, как получить доступ к значениям из сложных хеш-структур Perl, я думаю, что есть некоторые простые синтаксические правила, которые нужно знать, и вы можете получить любойценность даже очень сложных структур данных без особых усилий.
Я уже прочитал perldoc_perlreftut .Если есть какой-либо другой легкий для понимания учебник для такого рода проблем, пожалуйста, порекомендуйте их мне.Я действительно не знаю, как я могу научиться обрабатывать такие сложные структуры данных в Perl.