require './test.pl';
}
-plan tests => 39;
+plan tests => 52;
$h{'abc'} = 'ABC';
$h{'def'} = 'DEF';
is (keys(%hash), 10, "keys (%hash)");
-is (keys(hash), 10, "keys (hash)");
+{
+ no warnings 'deprecated';
+ is (keys(hash), 10, "keys (hash)");
+}
$i = 0;
%h = (a => A, b => B, c=> C, d => D, abc => ABC);
-@keys = keys(h);
-@values = values(h);
-while (($key, $value) = each(h)) {
+{
+ no warnings 'deprecated';
+ @keys = keys(h);
+ @values = values(h);
+ while (($key, $value) = each(h)) {
if ($key eq $keys[$i] && $value eq $values[$i] && $key eq lc($value)) {
$i++;
}
+ }
}
is ($i, 5);
is($u{$u1}, 3, "U+0100 -> 3 ");
is($u{$b1}, 4, "U+00C4 U+0080 -> 4");
}
+
+# test for syntax errors
+for my $k (qw(each keys values)) {
+ eval $k;
+ like($@, qr/^Not enough arguments for $k/, "$k demands argument");
+}
+
+{
+ my %foo=(1..10);
+ my ($k,$v);
+ my $count=keys %foo;
+ my ($k1,$v1)=each(%foo);
+ my $yes = 0;
+ if (%foo) { $yes++ }
+ my ($k2,$v2)=each(%foo);
+ my $rest=0;
+ while (each(%foo)) {$rest++};
+ is($yes,1,"if(%foo) was true");
+ isnt($k1,$k2,"if(%foo) didnt mess with each (key)");
+ isnt($v1,$v2,"if(%foo) didnt mess with each (value)");
+ is($rest,3,"Got the expect number of keys");
+ my $hsv=1 && %foo;
+ like($hsv,'/',"Got bucket stats from %foo in scalar assignment context");
+}
+{
+ our %foo=(1..10);
+ my ($k,$v);
+ my $count=keys %foo;
+ my ($k1,$v1)=each(%foo);
+ my $yes = 0;
+ if (%foo) { $yes++ }
+ my ($k2,$v2)=each(%foo);
+ my $rest=0;
+ while (each(%foo)) {$rest++};
+ is($yes,1,"if(%foo) was true");
+ isnt($k1,$k2,"if(%foo) didnt mess with each (key)");
+ isnt($v1,$v2,"if(%foo) didnt mess with each (value)");
+ is($rest,3,"Got the expect number of keys");
+ my $hsv=1 && %foo;
+ like($hsv,'/',"Got bucket stats from %foo in scalar assignment context");
+}