$ 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.