1#!./perl 2 3BEGIN { 4 chdir 't' if -d 't'; 5 @INC = '../lib'; 6 require './test.pl'; 7} 8use strict; 9use warnings; 10no warnings 'deprecated'; 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'); 135