5 for ($i = 0; $i <= 10; $i++) {
9 print "#1 :$y: eq :10:\n";
11 print "#1 :$y: eq :0 1 2 3 4 5 6 7 8 9 10:\n";
12 if (join(' ', @x) eq '0 1 2 3 4 5 6 7 8 9 10') {
23 if ($c == 12) {print "ok 2\n";} else {print "not ok 2\n";}
30 if (join('',@ary) eq '246810') {print "ok 3\n";} else {print "not ok 3\n";}
38 # test for internal scratch array generation
39 # this also tests that $foo was restored to 3210 after test 3
40 for (split(' ','a b c d e')) {
43 if ($foo eq '3210abcde') {print "ok 5\n";} else {print "not ok 5 $foo\n";}
45 foreach $foo (("ok 6\n","ok 7\n")) {
51 return $i if $_[0] == $i;
55 print foo(1) == 1 ? "ok" : "not ok", " 8\n";
56 print foo(2) == 2 ? "ok" : "not ok", " 9\n";
57 print foo(5) == 5 ? "ok" : "not ok", " 10\n";
67 print $a == 7 ? "ok" : "not ok", " 11\n";
73 print $loop_count == 4 ? "ok" : "not ok", " 12\n";
75 # modifying arrays in loops is a no-no
77 eval { @a = () for (1,2,@a) };
78 print $@ =~ /Use of freed value in iteration/ ? "ok" : "not ok", " 13\n";
80 # [perl #30061] double destory when same iterator variable (eg $_) used in
81 # DESTROY as used in for loop that triggered the destroy
93 $h{foo} = bless [], 'X';
94 delete $h{foo} for $h{foo}, 1;
95 print $x == 1 ? "ok" : "not ok", " 14 - double destroy, x=$x\n";
98 # A lot of tests to check that reversed for works.
101 my ($got, $expected, $name) = @_;
103 if ($got eq $expected) {
104 print "ok $test # $name\n";
107 print "not ok $test # $name\n";
108 print "# got '$got', expected '$expected'\n";
112 @array = ('A', 'B', 'C');
116 is ($r, 'ABC', 'Forwards for array');
121 is ($r, '123', 'Forwards for list');
123 for (map {$_} @array) {
126 is ($r, 'ABC', 'Forwards for array via map');
128 for (map {$_} 1,2,3) {
131 is ($r, '123', 'Forwards for list via map');
134 for (reverse @array) {
137 is ($r, 'CBA', 'Reverse for array');
139 for (reverse 1,2,3) {
142 is ($r, '321', 'Reverse for list');
144 for (reverse map {$_} @array) {
147 is ($r, 'CBA', 'Reverse for array via map');
149 for (reverse map {$_} 1,2,3) {
152 is ($r, '321', 'Reverse for list via map');
158 is ($r, 'ABC', 'Forwards for array with var');
163 is ($r, '123', 'Forwards for list with var');
165 for my $i (map {$_} @array) {
168 is ($r, 'ABC', 'Forwards for array via map with var');
170 for my $i (map {$_} 1,2,3) {
173 is ($r, '123', 'Forwards for list via map with var');
176 for my $i (reverse @array) {
179 is ($r, 'CBA', 'Reverse for array with var');
181 for my $i (reverse 1,2,3) {
184 is ($r, '321', 'Reverse for list with var');
186 for my $i (reverse map {$_} @array) {
189 is ($r, 'CBA', 'Reverse for array via map with var');
191 for my $i (reverse map {$_} 1,2,3) {
194 is ($r, '321', 'Reverse for list via map with var');
197 # I don't think that my is that different from our in the optree. But test a
200 for our $i (reverse @array) {
203 is ($r, 'CBA', 'Reverse for array with our var');
205 for our $i (reverse 1,2,3) {
208 is ($r, '321', 'Reverse for list with our var');
210 for our $i (reverse map {$_} @array) {
213 is ($r, 'CBA', 'Reverse for array via map with our var');
215 for our $i (reverse map {$_} 1,2,3) {
218 is ($r, '321', 'Reverse for list via map with our var');
222 for (1, reverse @array) {
225 is ($r, '1CBA', 'Reverse for array with leading value');
227 for ('A', reverse 1,2,3) {
230 is ($r, 'A321', 'Reverse for list with leading value');
232 for (1, reverse map {$_} @array) {
235 is ($r, '1CBA', 'Reverse for array via map with leading value');
237 for ('A', reverse map {$_} 1,2,3) {
240 is ($r, 'A321', 'Reverse for list via map with leading value');
243 for (reverse (@array), 1) {
246 is ($r, 'CBA1', 'Reverse for array with trailing value');
248 for (reverse (1,2,3), 'A') {
251 is ($r, '321A', 'Reverse for list with trailing value');
253 for (reverse (map {$_} @array), 1) {
256 is ($r, 'CBA1', 'Reverse for array via map with trailing value');
258 for (reverse (map {$_} 1,2,3), 'A') {
261 is ($r, '321A', 'Reverse for list via map with trailing value');
265 for my $i (1, reverse @array) {
268 is ($r, '1CBA', 'Reverse for array with leading value and var');
270 for my $i ('A', reverse 1,2,3) {
273 is ($r, 'A321', 'Reverse for list with leading value and var');
275 for my $i (1, reverse map {$_} @array) {
278 is ($r, '1CBA', 'Reverse for array via map with leading value and var');
280 for my $i ('A', reverse map {$_} 1,2,3) {
283 is ($r, 'A321', 'Reverse for list via map with leading value and var');
286 for my $i (reverse (@array), 1) {
289 is ($r, 'CBA1', 'Reverse for array with trailing value and var');
291 for my $i (reverse (1,2,3), 'A') {
294 is ($r, '321A', 'Reverse for list with trailing value and var');
296 for my $i (reverse (map {$_} @array), 1) {
299 is ($r, 'CBA1', 'Reverse for array via map with trailing value and var');
301 for my $i (reverse (map {$_} 1,2,3), 'A') {
304 is ($r, '321A', 'Reverse for list via map with trailing value and var');
308 for (reverse 1, @array) {
311 is ($r, 'CBA1', 'Reverse for value and array');
313 for (reverse map {$_} 1, @array) {
316 is ($r, 'CBA1', 'Reverse for value and array via map');
319 for (reverse (@array, 1)) {
322 is ($r, '1CBA', 'Reverse for array and value');
324 for (reverse (map {$_} @array, 1)) {
327 is ($r, '1CBA', 'Reverse for array and value via map');
331 for my $i (reverse 1, @array) {
334 is ($r, 'CBA1', 'Reverse for value and array with var');
336 for my $i (reverse map {$_} 1, @array) {
339 is ($r, 'CBA1', 'Reverse for value and array via map with var');
342 for my $i (reverse (@array, 1)) {
345 is ($r, '1CBA', 'Reverse for array and value with var');
347 for my $i (reverse (map {$_} @array, 1)) {
350 is ($r, '1CBA', 'Reverse for array and value via map with var');