use strict; use warnings; use Data::Dumper; my @arrA = ( [0, 1, 2] ); unshift @arrA, 1; print Data::Dumper->Dump([\@arrA], [q{*arrA}]); shift @arrA; unshift @arrA, [1]; print Data::Dumper->Dump([\@arrA], [q{*arrA}]); #### @arrA = ( 1, [ 0, 1, 2 ] ); @arrA = ( [ 1 ], [ 0, 1, 2 ] );