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