Note that your assignment is using array slices
@arr[0] and @arr[1]. Although it works, you should use
$arr[0] and $arr[1] instead because they are not the same thing.
You could use the following method to initialize the 2-d array (use qw // and no commas, I hate to type commas :-)
@arr = ( [ qw/ 1 2 3 / ],
[ qw/ 4 5 6 / ] );
Note that
[ ... ] builds a reference to an array, it has 0 dimension. While
( ... ) builds an array, which has 1 dimension. When you assign an array to a zero dimension element
@arr[0] or $arr[0], it only picks the first element from your array.
And also you could use
Data::Dumper to inspect your array afterwards.
use Data::Dumper;
@arr = ( [ qw/ 1 2 3 / ],
[ qw/ 4 5 6 / ] );
print Dumper(\@arr);
# and in your case
@arr[0] = qw/ 1 2 3 /;
@arr[1] = qw/ 4 5 6 /;
print Dumper(\@arr);