in reply to Convert array to tree OR why variable changes arbitrarily

Also can somebody please explain why I am unable to overwrite array with scalar? I was a little bit experimenting with array and references when you mentioned that there is problem with it.
perl -le ' use strict; use warnings; use Data::Dumper; my @arr = ("ng1", ["ng1_1", "ng1_2", "ng1_2"]); my @tree; $tree[0] = $arr[0]; $tree[1] = $arr[1]; $tree[1] = '2'; print Dumper @arr; '
Also can somebody claify differences between
$arr[$i+1]
and
[ @{$arr[$i+1]} ]
I understand that second is some kind of "hard copy" but can you please specify what is going on with those braces? It seems to me as dereferencing which is referenced. Does it have something common with, following two
$aref = [@flinstones]; $aref = \@flinstones;
Also can you please clarify the differences between last two lines? Are there simmilar or tehere are some differences? Thank you very much for all your help.