This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #87708] use integer; $tied < $tied
[perl5.git] / t / op / each_array.t
CommitLineData
55b67815 1#!./perl
878d132a
NC
2
3BEGIN {
4 chdir 't' if -d 't';
5 @INC = '../lib';
6 require './test.pl';
7}
8use strict;
55b67815
RGS
9use warnings;
10no warnings 'deprecated';
878d132a
NC
11use vars qw(@array @r $k $v);
12
13plan tests => 48;
14
15@array = qw(crunch zam bloop);
16
17(@r) = each @array;
18is (scalar @r, 2);
19is ($r[0], 0);
20is ($r[1], 'crunch');
21($k, $v) = each @array;
22is ($k, 1);
23is ($v, 'zam');
24($k, $v) = each @array;
25is ($k, 2);
26is ($v, 'bloop');
27(@r) = each @array;
28is (scalar @r, 0);
29
30(@r) = each @array;
31is (scalar @r, 2);
32is ($r[0], 0);
33is ($r[1], 'crunch');
34($k) = each @array;
35is ($k, 1);
36{
37 $[ = 2;
38 my ($k, $v) = each @array;
39 is ($k, 4);
40 is ($v, 'bloop');
41 (@r) = each @array;
42 is (scalar @r, 0);
43}
44
45my @lex_array = qw(PLOP SKLIZZORCH RATTLE PBLRBLPSFT);
46
47(@r) = each @lex_array;
48is (scalar @r, 2);
49is ($r[0], 0);
50is ($r[1], 'PLOP');
51($k, $v) = each @lex_array;
52is ($k, 1);
53is ($v, 'SKLIZZORCH');
54($k) = each @lex_array;
55is ($k, 2);
56{
57 $[ = -42;
58 my ($k, $v) = each @lex_array;
59 is ($k, -39);
60 is ($v, 'PBLRBLPSFT');
61}
62(@r) = each @lex_array;
63is (scalar @r, 0);
64
65my $ar = ['bacon'];
66
67(@r) = each @$ar;
68is (scalar @r, 2);
69is ($r[0], 0);
70is ($r[1], 'bacon');
71
72(@r) = each @$ar;
73is (scalar @r, 0);
74
75is (each @$ar, 0);
76is (scalar each @$ar, undef);
77
78my @keys;
79@keys = keys @array;
80is ("@keys", "0 1 2");
81
82@keys = keys @lex_array;
83is ("@keys", "0 1 2 3");
84
85{
86 $[ = 1;
87
88 @keys = keys @array;
89 is ("@keys", "1 2 3");
90
91 @keys = keys @lex_array;
92 is ("@keys", "1 2 3 4");
93}
94
95($k, $v) = each @array;
96is ($k, 0);
97is ($v, 'crunch');
98
99@keys = keys @array;
100is ("@keys", "0 1 2");
101
102($k, $v) = each @array;
103is ($k, 0);
104is ($v, 'crunch');
105
106
107
108my @values;
109@values = values @array;
110is ("@values", "@array");
111
112@values = values @lex_array;
113is ("@values", "@lex_array");
114
115{
116 $[ = 1;
117
118 @values = values @array;
119 is ("@values", "@array");
120
121 @values = values @lex_array;
122 is ("@values", "@lex_array");
123}
124
125($k, $v) = each @array;
126is ($k, 0);
127is ($v, 'crunch');
128
129@values = values @array;
130is ("@values", "@array");
131
132($k, $v) = each @array;
133is ($k, 0);
134is ($v, 'crunch');