12 cmp_ok($foo[0], '==', 1, 'first elem');
13 cmp_ok($foo[3], '==', 4, 'last elem');
16 cmp_ok($_, 'eq', '1:2:3:4', 'join list');
18 ($a,$b,$c,$d) = (1,2,3,4);
19 cmp_ok("$a;$b;$c;$d", 'eq', '1;2;3;4', 'list assign');
21 ($c,$b,$a) = split(/ /,"111 222 333");
22 cmp_ok("$a;$b;$c",'eq','333;222;111','list split on space');
24 ($a,$b,$c) = ($c,$b,$a);
25 cmp_ok("$a;$b;$c",'eq','111;222;333','trio rotate');
28 cmp_ok("$a-$b",'eq','222-111','duo swap');
30 ($a, $b) = ($b, $a) = ($a, $b);
31 cmp_ok("$a-$b",'eq','222-111','duo swap swap');
33 ($a, $b[1], $c{2}, $d) = (1, 2, 3, 4);
34 cmp_ok($a,'==',1,'assign scalar in list');
35 cmp_ok($b[1],'==',2,'assign aelem in list');
36 cmp_ok($c{2},'==',3,'assign helem in list');
37 cmp_ok($d,'==',4,'assign last scalar in list');
39 @foo = (1,2,3,4,5,6,7,8);
40 ($a, $b, $c, $d) = @foo;
41 cmp_ok("$a/$b/$c/$d",'eq','1/2/3/4','long list assign');
44 ($a, $b, $c, $d) = @foo;
45 cmp_ok($a,'==',1,'short list 1 defined');
46 cmp_ok($b,'==',2,'short list 2 defined');
47 ok(!defined($c),'short list 3 undef');
48 ok(!defined($d),'short list 4 undef');
51 cmp_ok(join(':',@foo,@bar),'eq','1:1','list reassign');
54 cmp_ok(join(':',join('+',@foo),join('-',@bar)),'eq','2+3:2-3','long list reassign');
58 cmp_ok(join(':',@foo),'eq','6','scalar assign to array');
62 for ($x = 0; $x < 3; $x = $x + 1) {
64 $x == 0 ? ('a','b','c')
65 : $x == 1 ? ('d','e','f')
69 cmp_ok($a,'eq','a','ternary for a 1');
70 cmp_ok($b,'eq','b','ternary for b 1');
71 cmp_ok($c,'eq','c','ternary for c 1');
74 cmp_ok($a,'eq','d','ternary for a 2');
75 cmp_ok($b,'eq','e','ternary for b 2');
76 cmp_ok($c,'eq','f','ternary for c 2');
79 cmp_ok($a,'eq','g','ternary for a 3');
80 cmp_ok($b,'eq','h','ternary for b 3');
81 cmp_ok($c,'eq','i','ternary for c 3');
88 for ($x = 0; $x < 3; $x = $x + 1) {
101 cmp_ok($a,'eq','a','block for a 1');
102 cmp_ok($b,'eq','b','block for b 1');
103 cmp_ok($c,'eq','c','block for c 1');
106 cmp_ok($a,'eq','d','block for a 2');
107 cmp_ok($b,'eq','e','block for b 2');
108 cmp_ok($c,'eq','f','block for c 2');
111 cmp_ok($a,'eq','g','block for a 3');
112 cmp_ok($b,'eq','h','block for b 3');
113 cmp_ok($c,'eq','i','block for c 3');
119 @a = ($x == 12345 || (1,2,3));
120 cmp_ok(join('*',@a),'eq','1*2*3','logical or f');
122 @a = ($x == $x || (4,5,6));
123 cmp_ok(join('*',@a),'eq','1','logical or t');
125 cmp_ok(join('',1,2,(3,4,5)),'eq','12345','list ..(...)');
126 cmp_ok(join('',(1,2,3,4,5)),'eq','12345','list (.....)');
127 cmp_ok(join('',(1,2,3,4),5),'eq','12345','list (....).');
128 cmp_ok(join('',1,(2,3,4),5),'eq','12345','list .(...).');
129 cmp_ok(join('',1,2,(3,4),5),'eq','12345','list ..(..).');
130 cmp_ok(join('',1,2,3,(4),5),'eq','12345','list ...(.).');
131 cmp_ok(join('',(1,2),3,(4,5)),'eq','12345','list (..).(..)');
134 my @a = (0, undef, undef, 3);
136 my @c = (0, undef, undef, 3)[1, 2];
137 cmp_ok(scalar(@b),'==',scalar(@c),'slice and slice');
138 cmp_ok(scalar(@c),'==',2,'slice len');
140 @b = (29, scalar @c[()]);
141 cmp_ok(join(':',@b),'eq','29:','slice ary nil');
144 @b = (30, scalar @h{()});
145 cmp_ok(join(':',@b),'eq','30:','slice hash nil');
147 my $size = scalar(()[1..1]);
148 cmp_ok($size,'==','0','size nil');
154 my $test_name = shift;
155 is(scalar(@_), 0, $test_name);
157 test_zero_args("simple list slice", (10,11)[2,3]);
158 test_zero_args("grepped list slice", grep(1, (10,11)[2,3]));
159 test_zero_args("sorted list slice", sort((10,11)[2,3]));
160 test_zero_args("assigned list slice", my @tmp = (10,11)[2,3]);
161 test_zero_args("do-returned list slice", do { (10,11)[2,3]; });