1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
## name Basic forward for/foreach
## failures 2
## cut
for (%hash) {
foreach (%hash) {
## name forward for/foreach with variable
## failures 2
## cut
for $foo (%hash) {
foreach $foo (%hash) {
## name forward for/foreach with lexical variable
## failures 2
## cut
for my $foo (%hash) {
foreach my $bar (%hash) {
## name postfix variations
## failures 4
## cut
print for %hash;
print for %{$hash};
print for %{ something() };
print foreach %hash;
## name reference variation
## failures 8
## cut
for my $foo (%{$hash}) {
foreach my $bar (%$hash) {
for $foo (%{$hash}) {
foreach $foo (%$hash) {
for (%{$hash}) {
foreach (%$hash) {
print for %{$hash};
print foreach %$hash;
## name Correct patterns
## failures 0
## cut
for my $foo (keys %hash) {
for my $foo (values %hash) {
foreach my $bar (keys %hash) {
for $foo (values %hash) {
foreach $foo (keys %hash) {
for (values %hash) {
foreach (keys %hash) {
print for values %hash;
print foreach keys %hash;
print for ( values %hash );
print foreach (keys %hash);
print foreach (keys %{$hash});
print foreach (keys %{ some_big_thing() });
for my $k (%foo ? sort keys %foo : sort keys %bar) {
for my $k (%{$foo} ? sort keys %{$foo} : sort keys %{$bar}) {
for my $k (%{ func() } ? sort keys %{ func() } : sort keys %{ func() }) {
## name Using "for"/"foreach" as hash key
## failures 0
## cut
$hash{for}
$hash->{for}
$hash->{ for }
$hash{foreach}
$hash->{foreach}
$hash->{ foreach }
# These came from Ahmed Abdrabo and Andy Lester
## name thing() for @array statement
## failures 0
## cut
print for @INC
say for @INC
END { $dbh->do("DROP TABLE $_") foreach @table }
{ print foreach @y }
{ print foreach 1..2 }
{ print foreach @y; }
{ print }
print foreach @y;
## name thing() for %hash statement
## failures 7
## cut
print for %INC
say for %INC
END { $dbh->do("DROP TABLE $_") foreach %tables }
{ print foreach %y }
{ print foreach %{@y} }
{ print foreach %y; }
print foreach %y;
## name Variable attributes
## failures 1
## cut
# this is fine
for my Dog $foo (@bar) { }
for my Foo::Bar $foo (@bar) { }
# fails
for my Foo::Bar $foo (%bar) { }
## name Reference Aliasing
## failures 0
## cut
foreach \my %hash (@array_of_hash_references) {}
## name Empty postfix loop
## failures 0
## cut
for Class->method($foo);
|