I recommend you read Flipin good, or a total flop? :). The short version is that you are geting the scalar range operator (scalar context) rather than the list you expected for a slice. The immediate fix is:
use strict; use warnings; my @unique_vault_list = (1..32); my @tapes_for_box1 = @unique_vault_list[0..19]; my @tapes_for_box2 = @unique_vault_list[20..$#unique_vault_list]; print "Box 1: @tapes_for_box1\n"; print "Box 2: @tapes_for_box2\n";
Prints:
Box 1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Box 2: 21 22 23 24 25 26 27 28 29 30 31 32
An alternative if you don't mind clobbering your original list (or making a copy of it) is:
use strict; use warnings; my @unique_vault_list = (1..32); my @tapes_for_box1 = splice @unique_vault_list, 0, 20; my @tapes_for_box2 = splice @unique_vault_list, 0, 20; print "Box 1: @tapes_for_box1\n"; print "Box 2: @tapes_for_box2\n";
Prints:
Box 1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Box 2: 21 22 23 24 25 26 27 28 29 30 31 32
In reply to Re: Array elements in groups of 20
by GrandFather
in thread Array elements in groups of 20
by jgiller
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |