my $json; { local $/; open my $fh, "<", "struc_cover_edu.json"; $json = <$fh>; close $fh; } my $data = JSON->new->decode($json); my $position = 1200; for my $s (@$data) { next unless $s->{PROT_NAME} eq 'ALK'; foreach my $p (0 .. $#{$s->{PDBS}}) { foreach my $b (0 .. $#{$s->{BLOCKS}}) { my @blocks = @{ $s->{BLOCKS}}; if ($position >= $blocks[$p][$b]{PSTART} && $position <= $blocks[$p][$b]{PEND} ){ print ($b->{PDB_ID},"\n");} } }}