my $data = get_data_from('foo'); die('no data') unless(defined($data)); my $obj = decode_json($data); if(defined($obj)){ if(exists($obj->{'foo'}) && defined($obj->{'foo'})){ if (exists($obj->{'foo'}->{'bar'}) && defined($obj->{'foo'}->{'bar'})){ print $obj->{'foo'}->{'bar'}; } } }