6 use Variable::Temp 'set_temp';
8 use Test::More tests => (7 + 2 * 19) * 2 + 6 * 3;
12 return join ', ', map "$_:$h->{$_}", sort keys %$h;
47 set_temp @y => [ 8, 9, 10 ];
54 set_temp @y => [ 12, 13, 14 ];
56 set_temp @y => [ 15, 16];
66 set_temp @y => [ qw<a b c> ];
72 local @y[2, 3] = qw<e f>;
84 is describe(\%z), 'a:1';
86 set_temp %z => { b => 2 };
87 is describe(\%z), 'b:2';
89 is describe(\%z), 'c:3';
91 is describe(\%z), 'c:3, d:4';
93 is describe(\%z), 'a:1';
95 set_temp %z => { a => 5 };
96 is describe(\%z), 'a:5';
98 is describe(\%z), 'a:6';
100 is describe(\%z), 'a:1';
102 set_temp %z => { a => 7, d => 8 };
103 is describe(\%z), 'a:7, d:8';
104 set_temp %z => { d => 9, e => 10 };
105 is describe(\%z), 'd:9, e:10';
107 is describe(\%z), 'a:1';
110 is describe(\%z), '';
112 is describe(\%z), 'a:1';
114 set_temp %z => { a => 11, f => 12 };
115 is describe(\%z), 'a:11, f:12';
118 is describe(\%z), 'a:13, f:12';
120 local @z{qw<f g>} = (14, 15);
121 is describe(\%z), 'a:13, f:14, g:15';
123 is describe(\%z), 'a:13, f:12';
125 is describe(\%z), 'a:11, f:12';
127 is describe(\%z), 'a:1';
170 set_temp @Y => [ 3 ];
179 set_temp @Y => [ 8, 9, 10 ];
186 set_temp @Y => [ 12, 13, 14 ];
188 set_temp @Y => [ 15, 16];
198 set_temp @Y => [ qw<a b c> ];
204 local @Y[2, 3] = qw<e f>;
218 local @Y = qw<C D E>;
219 set_temp @Y => [ qw<F> ];
224 set_temp @Y => [ qw<G H I> ];
233 is describe(\%Z), 'a:1';
235 set_temp %Z => { b => 2 };
236 is describe(\%Z), 'b:2';
238 is describe(\%Z), 'c:3';
240 is describe(\%Z), 'c:3, d:4';
242 is describe(\%Z), 'a:1';
244 set_temp %Z => { a => 5 };
245 is describe(\%Z), 'a:5';
247 is describe(\%Z), 'a:6';
249 is describe(\%Z), 'a:1';
251 set_temp %Z => { a => 7, d => 8 };
252 is describe(\%Z), 'a:7, d:8';
253 set_temp %Z => { d => 9, e => 10 };
254 is describe(\%Z), 'd:9, e:10';
256 is describe(\%Z), 'a:1';
259 is describe(\%Z), '';
261 is describe(\%Z), 'a:1';
263 set_temp %Z => { a => 11, f => 12 };
264 is describe(\%Z), 'a:11, f:12';
267 is describe(\%Z), 'a:13, f:12';
269 local @Z{qw<f g>} = (14, 15);
270 is describe(\%Z), 'a:13, f:14, g:15';
272 is describe(\%Z), 'a:13, f:12';
274 is describe(\%Z), 'a:11, f:12';
276 is describe(\%Z), 'a:1';
278 local %Z = (A => 1, B => 2);
279 is describe(\%Z), 'A:1, B:2';
281 is describe(\%Z), 'a:1';
283 local %Z = (A => 3, C => 4);
284 set_temp %Z => { A => 5, D => 6 };
285 is describe(\%Z), 'A:5, D:6';
287 is describe(\%Z), 'a:1';
289 set_temp %Z => { A => 7, E => 8 };
290 local %Z = (A => 9, F => 10);
291 is describe(\%Z), 'A:9, F:10';
293 is describe(\%Z), 'a:1';