Can't use string ("source") as a HASH ref while "strict refs" in use at duck line 77 (#1) (F) Only hard references are allowed by "strict refs". Symbolic references are disallowed. See perlref. Uncaught exception from user code: Can't use string ("source") as a HASH ref while "strict refs" in use at duck line 77. #### foreach my $var ( keys %elem ) { if ( $var->{id} == $form->{"id"} ) { #### #!/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__