#!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd /; my $form = { PR => [ { cleared => 0, }, [], { deraelc => 1 }, { cleared => 0, }, \'yo', { deraelc => 1 }, ], }; for my $ref ( @{ $form->{PR} } ){ if( UNIVERSAL::isa( $ref,'HASH' ) ){ dd( HASH => $ref ); }elsif( UNIVERSAL::isa( $ref,'ARRAY' ) ){ dd( ARRAY => $ref ); }else{ dd( ELSE => $ref ); } } __END__