@b = @a; #### @b = (); # temporary internal step @b = @a; #### use Data::Dumper; *a = *b; @b = (1,2); @b = @b; # perl detects this is assigning into same variable print Dumper(\@b); @b = @a ? @a : (); # new assignment print Dumper(\@a); print Dumper(\@b); #### $VAR1 = [ 1, 2 ]; $VAR1 = [ 1, 2 ]; $VAR1 = [ 1, 2 ];