$ perl -wMstrict -MData::Dump -e' @{$a->{list}} =(); dd $a' { list => [] } $ perl -wMstrict -MData::Dump -e' for (@{$a->{list}}) {}; dd $a' { list => [] } $ perl -wMstrict -MData::Dump -e' my @x = @{$a->{list}}; dd $a' Can't use an undefined value as an ARRAY reference at -e line 1. $ perl -wMstrict -MData::Dump -e' my $x = @{$a->{list}}; dd $a' Can't use an undefined value as an ARRAY reference at -e line 1. $ perl -wMstrict -MData::Dump -e' my $x = $#{$a->{list}}; dd $a' { list => [] }