use Data::Dumper; { # This Makes sense: my @b; my @a=$b[0]; print Dumper(\@a); # $VAR1 = [ undef ]; } { # So does this: my @a = []->[0]; print Dumper(\@a); # $VAR1 = [ undef ]; } { # But this makes no sense (and seems like bug): my @a = ()[0]; print Dumper(\@a); # $VAR1 = [] }