$ perl -le'undef $_; defined $_->{0}; print $_' HASH(0x813f1c8) #### while( defined $bros->{ $find }->[ $index ]->{ $key } ) { # ... } #### while( ref $bros->{ $find }->[ $index ] and defined $bros->{ $find }->[ $index ]->{ $key } ) { # ... } #### for my $year ( qw( 1958 1959 1960 1961 1962 1963 1964 ) ) { for my $film ( @{ $bros->{ $year } } ) { push @res, { brother => $film, year => $year } if $film->{ $key } =~ /$data/i; } } #### for my $year ( qw( 1958 1959 1960 1961 1962 1963 1964 ) ) { push @res, ( map +{ brother => $_, year => $year }, grep $_->{ $key } =~ /$data/i, @{ $bros->{ $year } }, ); }