The left is an array slice; it's expecting a list on the right. The "list" you gave it is essentially like (1, undef, undef). So only $x[1] is getting a value here. You could write it like:
@x[1..3] = (1,1,1)
For this:
for($y=0; $y!=@x; $y++)You should generally avoid the C-style for. You can rewrite it like this:
for my $y (0..$#x)
Also to easily view the contents of your array without having to loop, you may look into Data::Dumper.
edit: Fixed as per [id://ikegami]'s reply
In reply to Re: Initialization of arrays
by chester
in thread Initialization of arrays
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |