| ... | ... | 
                  @@ -71,7 +71,7 @@ sub available_datatype {
                 | 
              
| 71 | 71 | 
                  my $self = shift;  | 
              
| 72 | 72 | 
                   | 
              
| 73 | 73 | 
                  my $data_types = '';  | 
              
| 74 | 
                  -    foreach my $i (-1000 .. 1000) {
                 | 
              |
| 74 | 
                  +    for my $i (-1000 .. 1000) {
                 | 
              |
| 75 | 75 | 
                  my $type_info = $self->dbh->type_info($i);  | 
              
| 76 | 76 | 
                            my $data_type = $type_info->{DATA_TYPE};
                 | 
              
| 77 | 77 | 
                            my $type_name = $type_info->{TYPE_NAME};
                 | 
              
| ... | ... | 
                  @@ -127,7 +127,7 @@ sub assign_clause {
                 | 
              
| 127 | 127 | 
                  # Create set tag  | 
              
| 128 | 128 | 
                  my @params;  | 
              
| 129 | 129 | 
                  my $safety = $self->safety_character;  | 
              
| 130 | 
                  -    foreach my $column (sort keys %$param) {
                 | 
              |
| 130 | 
                  +    for my $column (sort keys %$param) {
                 | 
              |
| 131 | 131 | 
                           croak qq{"$column" is not safety column name } . _subname
                 | 
              
| 132 | 132 | 
                  unless $column =~ /^[$safety\.]+$/;  | 
              
| 133 | 133 | 
                  my $column_quote = $self->_q($column);  | 
              
| ... | ... | 
                  @@ -406,13 +406,13 @@ sub execute {
                 | 
              
| 406 | 406 | 
                  # Type rule  | 
              
| 407 | 407 | 
                       my $type_filters = {};
                 | 
              
| 408 | 408 | 
                       unless ($type_rule_off) {
                 | 
              
| 409 | 
                  -        foreach my $i (1, 2) {
                 | 
              |
| 409 | 
                  +        for my $i (1, 2) {
                 | 
              |
| 410 | 410 | 
                               unless ($type_rule_off_parts->{$i}) {
                 | 
              
| 411 | 411 | 
                                   $type_filters->{$i} = {};
                 | 
              
| 412 | 
                  -                foreach my $alias (keys %$table_alias) {
                 | 
              |
| 412 | 
                  +                for my $alias (keys %$table_alias) {
                 | 
              |
| 413 | 413 | 
                                       my $table = $table_alias->{$alias};
                 | 
              
| 414 | 414 | 
                   | 
              
| 415 | 
                  -                    foreach my $column (keys %{$self->{"_into$i"}{key}{$table} || {}}) {
                 | 
              |
| 415 | 
                  +                    for my $column (keys %{$self->{"_into$i"}{key}{$table} || {}}) {
                 | 
              |
| 416 | 416 | 
                                           $type_filters->{$i}->{"$alias.$column"} = $self->{"_into$i"}{key}{$table}{$column};
                 | 
              
| 417 | 417 | 
                  }  | 
              
| 418 | 418 | 
                  }  | 
              
| ... | ... | 
                  @@ -425,7 +425,7 @@ sub execute {
                 | 
              
| 425 | 425 | 
                  # DEPRECATED! Applied filter  | 
              
| 426 | 426 | 
                       if ($self->{filter}{on}) {
                 | 
              
| 427 | 427 | 
                           my $applied_filter = {};
                 | 
              
| 428 | 
                  -        foreach my $table (@$tables) {
                 | 
              |
| 428 | 
                  +        for my $table (@$tables) {
                 | 
              |
| 429 | 429 | 
                               $applied_filter = {
                 | 
              
| 430 | 430 | 
                  %$applied_filter,  | 
              
| 431 | 431 | 
                                   %{$self->{filter}{out}->{$table} || {}}
                 | 
              
| ... | ... | 
                  @@ -435,7 +435,7 @@ sub execute {
                 | 
              
| 435 | 435 | 
                  }  | 
              
| 436 | 436 | 
                   | 
              
| 437 | 437 | 
                  # Replace filter name to code  | 
              
| 438 | 
                  -    foreach my $column (keys %$filter) {
                 | 
              |
| 438 | 
                  +    for my $column (keys %$filter) {
                 | 
              |
| 439 | 439 | 
                           my $name = $filter->{$column};
                 | 
              
| 440 | 440 | 
                           if (!defined $name) {
                 | 
              
| 441 | 441 | 
                               $filter->{$column} = undef;
                 | 
              
| ... | ... | 
                  @@ -478,7 +478,7 @@ sub execute {
                 | 
              
| 478 | 478 | 
                       if (DEBUG) {
                 | 
              
| 479 | 479 | 
                  print STDERR "SQL:\n" . $query->sql . "\n";  | 
              
| 480 | 480 | 
                  my @output;  | 
              
| 481 | 
                  -        foreach my $b (@$bind) {
                 | 
              |
| 481 | 
                  +        for my $b (@$bind) {
                 | 
              |
| 482 | 482 | 
                               my $value = $b->{value};
                 | 
              
| 483 | 483 | 
                  $value = 'undef' unless defined $value;  | 
              
| 484 | 484 | 
                  $value = encode(DEBUG_ENCODING(), $value)  | 
              
| ... | ... | 
                  @@ -497,8 +497,8 @@ sub execute {
                 | 
              
| 497 | 497 | 
                               $filter->{in}  = {};
                 | 
              
| 498 | 498 | 
                               $filter->{end} = {};
                 | 
              
| 499 | 499 | 
                  push @$tables, $main_table if $main_table;  | 
              
| 500 | 
                  -            foreach my $table (@$tables) {
                 | 
              |
| 501 | 
                  -                foreach my $way (qw/in end/) {
                 | 
              |
| 500 | 
                  +            for my $table (@$tables) {
                 | 
              |
| 501 | 
                  +                for my $way (qw/in end/) {
                 | 
              |
| 502 | 502 | 
                                       $filter->{$way} = {
                 | 
              
| 503 | 503 | 
                                           %{$filter->{$way}},
                 | 
              
| 504 | 504 | 
                                           %{$self->{filter}{$way}{$table} || {}}
                 | 
              
| ... | ... | 
                  @@ -644,7 +644,7 @@ sub include_model {
                 | 
              
| 644 | 644 | 
                  }  | 
              
| 645 | 645 | 
                   | 
              
| 646 | 646 | 
                  # Include models  | 
              
| 647 | 
                  -    foreach my $model_info (@$model_infos) {
                 | 
              |
| 647 | 
                  +    for my $model_info (@$model_infos) {
                 | 
              |
| 648 | 648 | 
                   | 
              
| 649 | 649 | 
                  # Load model  | 
              
| 650 | 650 | 
                  my $model_class;  | 
              
| ... | ... | 
                  @@ -690,8 +690,8 @@ sub merge_param {
                 | 
              
| 690 | 690 | 
                   | 
              
| 691 | 691 | 
                  # Merge parameters  | 
              
| 692 | 692 | 
                       my $merge = {};
                 | 
              
| 693 | 
                  -    foreach my $param (@params) {
                 | 
              |
| 694 | 
                  -        foreach my $column (keys %$param) {
                 | 
              |
| 693 | 
                  +    for my $param (@params) {
                 | 
              |
| 694 | 
                  +        for my $column (keys %$param) {
                 | 
              |
| 695 | 695 | 
                               my $param_is_array = ref $param->{$column} eq 'ARRAY' ? 1 : 0;
                 | 
              
| 696 | 696 | 
                   | 
              
| 697 | 697 | 
                               if (exists $merge->{$column}) {
                 | 
              
| ... | ... | 
                  @@ -744,7 +744,7 @@ sub new {
                 | 
              
| 744 | 744 | 
                   | 
              
| 745 | 745 | 
                  # Check attributes  | 
              
| 746 | 746 | 
                  my @attrs = keys %$self;  | 
              
| 747 | 
                  -    foreach my $attr (@attrs) {
                 | 
              |
| 747 | 
                  +    for my $attr (@attrs) {
                 | 
              |
| 748 | 748 | 
                           croak qq{Invalid attribute: "$attr" } . _subname
                 | 
              
| 749 | 749 | 
                  unless $self->can($attr);  | 
              
| 750 | 750 | 
                  }  | 
              
| ... | ... | 
                  @@ -815,7 +815,7 @@ sub select {
                 | 
              
| 815 | 815 | 
                       if (defined $opt{column}) {
                 | 
              
| 816 | 816 | 
                  my $columns  | 
              
| 817 | 817 | 
                             = ref $opt{column} eq 'ARRAY' ? $opt{column} : [$opt{column}];
                 | 
              
| 818 | 
                  -        foreach my $column (@$columns) {
                 | 
              |
| 818 | 
                  +        for my $column (@$columns) {
                 | 
              |
| 819 | 819 | 
                               if (ref $column eq 'HASH') {
                 | 
              
| 820 | 820 | 
                  $column = $self->column(%$column) if ref $column eq 'HASH';  | 
              
| 821 | 821 | 
                  }  | 
              
| ... | ... | 
                  @@ -838,7 +838,7 @@ sub select {
                 | 
              
| 838 | 838 | 
                  $sql .= 'from ';  | 
              
| 839 | 839 | 
                       if ($opt{relation}) {
                 | 
              
| 840 | 840 | 
                           my $found = {};
                 | 
              
| 841 | 
                  -        foreach my $table (@$tables) {
                 | 
              |
| 841 | 
                  +        for my $table (@$tables) {
                 | 
              |
| 842 | 842 | 
                               $sql .= $self->_q($table) . ', ' unless $found->{$table};
                 | 
              
| 843 | 843 | 
                               $found->{$table} = 1;
                 | 
              
| 844 | 844 | 
                  }  | 
              
| ... | ... | 
                  @@ -957,13 +957,13 @@ sub type_rule {
                 | 
              
| 957 | 957 | 
                           my $type_rule = ref $_[0] eq 'HASH' ? $_[0] : {@_};
                 | 
              
| 958 | 958 | 
                   | 
              
| 959 | 959 | 
                  # Into  | 
              
| 960 | 
                  -        foreach my $i (1 .. 2) {
                 | 
              |
| 960 | 
                  +        for my $i (1 .. 2) {
                 | 
              |
| 961 | 961 | 
                  my $into = "into$i";  | 
              
| 962 | 962 | 
                               my $exists_into = exists $type_rule->{$into};
                 | 
              
| 963 | 963 | 
                               $type_rule->{$into} = _array_to_hash($type_rule->{$into});
                 | 
              
| 964 | 964 | 
                               $self->{type_rule} = $type_rule;
                 | 
              
| 965 | 965 | 
                               $self->{"_$into"} = {};
                 | 
              
| 966 | 
                  -            foreach my $type_name (keys %{$type_rule->{$into} || {}}) {
                 | 
              |
| 966 | 
                  +            for my $type_name (keys %{$type_rule->{$into} || {}}) {
                 | 
              |
| 967 | 967 | 
                                   croak qq{type name of $into section must be lower case}
                 | 
              
| 968 | 968 | 
                  if $type_name =~ /[A-Z]/;  | 
              
| 969 | 969 | 
                  }  | 
              
| ... | ... | 
                  @@ -992,9 +992,9 @@ sub type_rule {
                 | 
              
| 992 | 992 | 
                  }  | 
              
| 993 | 993 | 
                   | 
              
| 994 | 994 | 
                  # From  | 
              
| 995 | 
                  -        foreach my $i (1 .. 2) {
                 | 
              |
| 995 | 
                  +        for my $i (1 .. 2) {
                 | 
              |
| 996 | 996 | 
                               $type_rule->{"from$i"} = _array_to_hash($type_rule->{"from$i"});
                 | 
              
| 997 | 
                  -            foreach my $data_type (keys %{$type_rule->{"from$i"} || {}}) {
                 | 
              |
| 997 | 
                  +            for my $data_type (keys %{$type_rule->{"from$i"} || {}}) {
                 | 
              |
| 998 | 998 | 
                                   croak qq{data type of from$i section must be lower case or number}
                 | 
              
| 999 | 999 | 
                  if $data_type =~ /[A-Z]/;  | 
              
| 1000 | 1000 | 
                                   my $fname = $type_rule->{"from$i"}{$data_type};
                 | 
              
| ... | ... | 
                  @@ -1118,7 +1118,7 @@ sub values_clause {
                 | 
              
| 1118 | 1118 | 
                  my $safety = $self->safety_character;  | 
              
| 1119 | 1119 | 
                  my @columns;  | 
              
| 1120 | 1120 | 
                  my @placeholders;  | 
              
| 1121 | 
                  -    foreach my $column (sort keys %$param) {
                 | 
              |
| 1121 | 
                  +    for my $column (sort keys %$param) {
                 | 
              |
| 1122 | 1122 | 
                           croak qq{"$column" is not safety column name } . _subname
                 | 
              
| 1123 | 1123 | 
                  unless $column =~ /^[$safety\.]+$/;  | 
              
| 1124 | 1124 | 
                  my $column_quote = $self->_q($column);  | 
              
| ... | ... | 
                  @@ -1219,7 +1219,7 @@ sub _create_bind_values {
                 | 
              
| 1219 | 1219 | 
                  my $bind = [];  | 
              
| 1220 | 1220 | 
                       my $count = {};
                 | 
              
| 1221 | 1221 | 
                       my $not_exists = {};
                 | 
              
| 1222 | 
                  -    foreach my $column (@$columns) {
                 | 
              |
| 1222 | 
                  +    for my $column (@$columns) {
                 | 
              |
| 1223 | 1223 | 
                   | 
              
| 1224 | 1224 | 
                  # Value  | 
              
| 1225 | 1225 | 
                  my $value;  | 
              
| ... | ... | 
                  @@ -1246,7 +1246,7 @@ sub _create_bind_values {
                 | 
              
| 1246 | 1246 | 
                  $value = $f->($value) if $f;  | 
              
| 1247 | 1247 | 
                   | 
              
| 1248 | 1248 | 
                  # Type rule  | 
              
| 1249 | 
                  -        foreach my $i (1 .. 2) {
                 | 
              |
| 1249 | 
                  +        for my $i (1 .. 2) {
                 | 
              |
| 1250 | 1250 | 
                               my $type_filter = $type_filters->{$i};
                 | 
              
| 1251 | 1251 | 
                               my $tf = $self->{"_into$i"}->{dot}->{$column} || $type_filter->{$column};
                 | 
              
| 1252 | 1252 | 
                  $value = $tf->($value) if $tf;  | 
              
| ... | ... | 
                  @@ -1349,7 +1349,7 @@ sub _need_tables {
                 | 
              
| 1349 | 1349 | 
                  my ($self, $tree, $need_tables, $tables) = @_;  | 
              
| 1350 | 1350 | 
                   | 
              
| 1351 | 1351 | 
                  # Get needed tables  | 
              
| 1352 | 
                  -    foreach my $table (@$tables) {
                 | 
              |
| 1352 | 
                  +    for my $table (@$tables) {
                 | 
              |
| 1353 | 1353 | 
                           if ($tree->{$table}) {
                 | 
              
| 1354 | 1354 | 
                               $need_tables->{$table} = 1;
                 | 
              
| 1355 | 1355 | 
                               $self->_need_tables($tree, $need_tables, [$tree->{$table}{parent}])
                 | 
              
| ... | ... | 
                  @@ -1431,10 +1431,11 @@ sub _push_join {
                 | 
              
| 1431 | 1431 | 
                  # Search need tables  | 
              
| 1432 | 1432 | 
                       my $need_tables = {};
                 | 
              
| 1433 | 1433 | 
                  $self->_need_tables($tree, $need_tables, $join_tables);  | 
              
| 1434 | 
                  -    my @need_tables = sort { $tree->{$a}{position} <=> $tree->{$b}{position} } keys %$need_tables;
                 | 
              |
| 1434 | 
                  +    my @need_tables = sort { $tree->{$a}{position} <=> $tree->{$b}{position} }
                 | 
              |
| 1435 | 
                  + keys %$need_tables;  | 
              |
| 1435 | 1436 | 
                   | 
              
| 1436 | 1437 | 
                  # Add join clause  | 
              
| 1437 | 
                  -    foreach my $need_table (@need_tables) {
                 | 
              |
| 1438 | 
                  +    for my $need_table (@need_tables) {
                 | 
              |
| 1438 | 1439 | 
                           $$sql .= $tree->{$need_table}{join} . ' ';
                 | 
              
| 1439 | 1440 | 
                  }  | 
              
| 1440 | 1441 | 
                  }  | 
              
| ... | ... | 
                  @@ -1508,7 +1509,7 @@ sub _where_to_obj {
                 | 
              
| 1508 | 1509 | 
                       if (ref $where eq 'HASH') {
                 | 
              
| 1509 | 1510 | 
                  my $clause = ['and'];  | 
              
| 1510 | 1511 | 
                  my $q = $self->_quote;  | 
              
| 1511 | 
                  -        foreach my $column (keys %$where) {
                 | 
              |
| 1512 | 
                  +        for my $column (keys %$where) {
                 | 
              |
| 1512 | 1513 | 
                  my $table;  | 
              
| 1513 | 1514 | 
                  my $c;  | 
              
| 1514 | 1515 | 
                               if ($column =~ /(?:(.*?)\.)?(.*)/) {
                 | 
              
| ... | ... | 
                  @@ -1595,7 +1596,7 @@ sub _apply_filter {
                 | 
              
| 1595 | 1596 | 
                  # Column  | 
              
| 1596 | 1597 | 
                  my $column = $cinfos[$i];  | 
              
| 1597 | 1598 | 
                           if (ref $column eq 'ARRAY') {
                 | 
              
| 1598 | 
                  -            foreach my $c (@$column) {
                 | 
              |
| 1599 | 
                  +            for my $c (@$column) {
                 | 
              |
| 1599 | 1600 | 
                  push @cinfos, $c, $cinfos[$i + 1];  | 
              
| 1600 | 1601 | 
                  }  | 
              
| 1601 | 1602 | 
                  next;  | 
              
| ... | ... | 
                  @@ -1605,13 +1606,13 @@ sub _apply_filter {
                 | 
              
| 1605 | 1606 | 
                           my $finfo = $cinfos[$i + 1] || {};
                 | 
              
| 1606 | 1607 | 
                  croak "$usage (table: $table) " . _subname  | 
              
| 1607 | 1608 | 
                  unless ref $finfo eq 'HASH';  | 
              
| 1608 | 
                  -        foreach my $ftype (keys %$finfo) {
                 | 
              |
| 1609 | 
                  +        for my $ftype (keys %$finfo) {
                 | 
              |
| 1609 | 1610 | 
                  croak "$usage (table: $table) " . _subname  | 
              
| 1610 | 1611 | 
                  unless $ftype eq 'in' || $ftype eq 'out' || $ftype eq 'end';  | 
              
| 1611 | 1612 | 
                  }  | 
              
| 1612 | 1613 | 
                   | 
              
| 1613 | 1614 | 
                  # Set filters  | 
              
| 1614 | 
                  -        foreach my $way (qw/in out end/) {
                 | 
              |
| 1615 | 
                  +        for my $way (qw/in out end/) {
                 | 
              |
| 1615 | 1616 | 
                   | 
              
| 1616 | 1617 | 
                  # Filter  | 
              
| 1617 | 1618 | 
                               my $filter = $finfo->{$way};
                 | 
              
| ... | ... | 
                  @@ -1878,7 +1879,7 @@ sub _push_relation {
                 | 
              
| 1878 | 1879 | 
                   | 
              
| 1879 | 1880 | 
                       if (keys %{$relation || {}}) {
                 | 
              
| 1880 | 1881 | 
                  $$sql .= $need_where ? 'where ' : 'and ';  | 
              
| 1881 | 
                  -        foreach my $rcolumn (keys %$relation) {
                 | 
              |
| 1882 | 
                  +        for my $rcolumn (keys %$relation) {
                 | 
              |
| 1882 | 1883 | 
                  my $table1 = (split (/\./, $rcolumn))[0];  | 
              
| 1883 | 1884 | 
                               my $table2 = (split (/\./, $relation->{$rcolumn}))[0];
                 | 
              
| 1884 | 1885 | 
                  push @$tables, ($table1, $table2);  | 
              
| ... | ... | 
                  @@ -1893,12 +1894,12 @@ sub _add_relation_table {
                 | 
              
| 1893 | 1894 | 
                  my ($self, $tables, $relation) = @_;  | 
              
| 1894 | 1895 | 
                   | 
              
| 1895 | 1896 | 
                       if (keys %{$relation || {}}) {
                 | 
              
| 1896 | 
                  -        foreach my $rcolumn (keys %$relation) {
                 | 
              |
| 1897 | 
                  +        for my $rcolumn (keys %$relation) {
                 | 
              |
| 1897 | 1898 | 
                  my $table1 = (split (/\./, $rcolumn))[0];  | 
              
| 1898 | 1899 | 
                               my $table2 = (split (/\./, $relation->{$rcolumn}))[0];
                 | 
              
| 1899 | 1900 | 
                  my $table1_exists;  | 
              
| 1900 | 1901 | 
                  my $table2_exists;  | 
              
| 1901 | 
                  -            foreach my $table (@$tables) {
                 | 
              |
| 1902 | 
                  +            for my $table (@$tables) {
                 | 
              |
| 1902 | 1903 | 
                  $table1_exists = 1 if $table eq $table1;  | 
              
| 1903 | 1904 | 
                  $table2_exists = 1 if $table eq $table2;  | 
              
| 1904 | 1905 | 
                  }  | 
              
| ... | ... | 
                  @@ -2551,7 +2552,7 @@ You can check SQL or get statment handle.  | 
              
| 2551 | 2552 | 
                  If you want to execute SQL fast, you can do the following way.  | 
              
| 2552 | 2553 | 
                   | 
              
| 2553 | 2554 | 
                  my $query;  | 
              
| 2554 | 
                  -    foreach my $row (@$rows) {
                 | 
              |
| 2555 | 
                  +    for my $row (@$rows) {
                 | 
              |
| 2555 | 2556 | 
                  $query ||= $dbi->insert($row, table => 'table1', query => 1);  | 
              
| 2556 | 2557 | 
                  $dbi->execute($query, $row);  | 
              
| 2557 | 2558 | 
                  }  | 
              
| ... | ... | 
                  @@ -2564,7 +2565,7 @@ You can do the following way.  | 
              
| 2564 | 2565 | 
                   | 
              
| 2565 | 2566 | 
                  my $query;  | 
              
| 2566 | 2567 | 
                  my $sth;  | 
              
| 2567 | 
                  -    foreach my $row (@$rows) {
                 | 
              |
| 2568 | 
                  +    for my $row (@$rows) {
                 | 
              |
| 2568 | 2569 | 
                  $query ||= $dbi->insert($row, table => 'book', query => 1);  | 
              
| 2569 | 2570 | 
                  $sth ||= $query->sth;  | 
              
| 2570 | 2571 | 
                         $sth->execute(map { $row->{$_} } sort keys %$row);
                 | 
              
| ... | ... | 
                  @@ -22,7 +22,7 @@ sub map {
                 | 
              
| 22 | 22 | 
                   | 
              
| 23 | 23 | 
                  # Mapping  | 
              
| 24 | 24 | 
                       my $new_param = {};
                 | 
              
| 25 | 
                  -    foreach my $key (keys %rule) {
                 | 
              |
| 25 | 
                  +    for my $key (keys %rule) {
                 | 
              |
| 26 | 26 | 
                   | 
              
| 27 | 27 | 
                           my $mapping = $rule{$key};
                 | 
              
| 28 | 28 | 
                   | 
              
| ... | ... | 
                  @@ -102,7 +102,7 @@ sub new {
                 | 
              
| 102 | 102 | 
                   | 
              
| 103 | 103 | 
                  # Check attribute names  | 
              
| 104 | 104 | 
                  my @attrs = keys %$self;  | 
              
| 105 | 
                  -    foreach my $attr (@attrs) {
                 | 
              |
| 105 | 
                  +    for my $attr (@attrs) {
                 | 
              |
| 106 | 106 | 
                           croak qq{"$attr" is invalid attribute name (} . _subname . ")"
                 | 
              
| 107 | 107 | 
                  unless $self->can($attr);  | 
              
| 108 | 108 | 
                  }  | 
              
| ... | ... | 
                  @@ -40,7 +40,7 @@ sub AUTOLOAD {
                 | 
              
| 40 | 40 | 
                   | 
              
| 41 | 41 | 
                  my @methods = qw/insert insert_at update update_at update_all  | 
              
| 42 | 42 | 
                  delete delete_at delete_all select select_at count/;  | 
              
| 43 | 
                  -foreach my $method (@methods) {
                 | 
              |
| 43 | 
                  +for my $method (@methods) {
                 | 
              |
| 44 | 44 | 
                   | 
              
| 45 | 45 | 
                       my $code = sub {
                 | 
              
| 46 | 46 | 
                  my $self = shift;  | 
              
| ... | ... | 
                  @@ -101,7 +101,7 @@ sub new {
                 | 
              
| 101 | 101 | 
                   | 
              
| 102 | 102 | 
                  # Check attribute names  | 
              
| 103 | 103 | 
                  my @attrs = keys %$self;  | 
              
| 104 | 
                  -    foreach my $attr (@attrs) {
                 | 
              |
| 104 | 
                  +    for my $attr (@attrs) {
                 | 
              |
| 105 | 105 | 
                           croak qq{"$attr" is invalid attribute name } . _subname
                 | 
              
| 106 | 106 | 
                  unless $self->can($attr);  | 
              
| 107 | 107 | 
                  }  | 
              
| ... | ... | 
                  @@ -11,7 +11,7 @@ has 'dbi',  | 
              
| 11 | 11 | 
                   sub prepend {
                 | 
              
| 12 | 12 | 
                  my $self = shift;  | 
              
| 13 | 13 | 
                   | 
              
| 14 | 
                  -    foreach my $order (reverse @_) {
                 | 
              |
| 14 | 
                  +    for my $order (reverse @_) {
                 | 
              |
| 15 | 15 | 
                           if (ref $order eq 'ARRAY') {
                 | 
              
| 16 | 16 | 
                  my $column = shift @$order;  | 
              
| 17 | 17 | 
                  $column = $self->dbi->_q($column) if defined $column;  | 
              
| ... | ... | 
                  @@ -30,7 +30,7 @@ sub to_string {
                 | 
              
| 30 | 30 | 
                   | 
              
| 31 | 31 | 
                       my $exists = {};
                 | 
              
| 32 | 32 | 
                  my @orders;  | 
              
| 33 | 
                  -    foreach my $order (@{$self->orders}) {
                 | 
              |
| 33 | 
                  +    for my $order (@{$self->orders}) {
                 | 
              |
| 34 | 34 | 
                  next unless defined $order;  | 
              
| 35 | 35 | 
                  $order =~ s/^\s+//;  | 
              
| 36 | 36 | 
                  $order =~ s/\s+$//;  | 
              
| ... | ... | 
                  @@ -46,7 +46,7 @@ sub filter {
                 | 
              
| 46 | 46 | 
                  my $column = $ef->[$i];  | 
              
| 47 | 47 | 
                  my $f = $ef->[$i + 1];  | 
              
| 48 | 48 | 
                                   if (ref $column eq 'ARRAY') {
                 | 
              
| 49 | 
                  -                    foreach my $c (@$column) {
                 | 
              |
| 49 | 
                  +                    for my $c (@$column) {
                 | 
              |
| 50 | 50 | 
                                           $filter->{$c} = $f;
                 | 
              
| 51 | 51 | 
                  }  | 
              
| 52 | 52 | 
                  }  | 
              
| ... | ... | 
                  @@ -55,7 +55,7 @@ sub filter {
                 | 
              
| 55 | 55 | 
                  }  | 
              
| 56 | 56 | 
                  }  | 
              
| 57 | 57 | 
                  }  | 
              
| 58 | 
                  -        foreach my $column (keys %$filter) {
                 | 
              |
| 58 | 
                  +        for my $column (keys %$filter) {
                 | 
              |
| 59 | 59 | 
                               my $fname = $filter->{$column};
                 | 
              
| 60 | 60 | 
                               if  (exists $filter->{$column}
                 | 
              
| 61 | 61 | 
                  && defined $fname  | 
              
| ... | ... | 
                  @@ -208,7 +208,7 @@ sub _parse_tag {
                 | 
              
| 208 | 208 | 
                  # Tables  | 
              
| 209 | 209 | 
                  my $tables = [];  | 
              
| 210 | 210 | 
                  # Build SQL  | 
              
| 211 | 
                  -    foreach my $node (@tree) {
                 | 
              |
| 211 | 
                  +    for my $node (@tree) {
                 | 
              |
| 212 | 212 | 
                  # Text  | 
              
| 213 | 213 | 
                           if ($node->{type} eq 'text') { $sql .= $node->{value} }
                 | 
              
| 214 | 214 | 
                  # Parameter  | 
              
| ... | ... | 
                  @@ -18,7 +18,7 @@ sub filter {
                 | 
              
| 18 | 18 | 
                  # Convert filter name to subroutine  | 
              
| 19 | 19 | 
                  my $filter = @_ == 1 ? $_[0] : [@_];  | 
              
| 20 | 20 | 
                  $filter = _array_to_hash($filter);  | 
              
| 21 | 
                  -        foreach my $column (keys %$filter) {
                 | 
              |
| 21 | 
                  +        for my $column (keys %$filter) {
                 | 
              |
| 22 | 22 | 
                               my $fname = $filter->{$column};
                 | 
              
| 23 | 23 | 
                               if  (exists $filter->{$column}
                 | 
              
| 24 | 24 | 
                  && defined $fname  | 
              
| ... | ... | 
                  @@ -230,9 +230,9 @@ sub type_rule {
                 | 
              
| 230 | 230 | 
                           my $type_rule = ref $_[0] eq 'HASH' ? $_[0] : {@_};
                 | 
              
| 231 | 231 | 
                   | 
              
| 232 | 232 | 
                  # From  | 
              
| 233 | 
                  -        foreach my $i (1 .. 2) {
                 | 
              |
| 233 | 
                  +        for my $i (1 .. 2) {
                 | 
              |
| 234 | 234 | 
                               $type_rule->{"from$i"} = _array_to_hash($type_rule->{"from$i"});
                 | 
              
| 235 | 
                  -            foreach my $data_type (keys %{$type_rule->{"from$i"} || {}}) {
                 | 
              |
| 235 | 
                  +            for my $data_type (keys %{$type_rule->{"from$i"} || {}}) {
                 | 
              |
| 236 | 236 | 
                                   croak qq{data type of from$i section must be lower case or number}
                 | 
              
| 237 | 237 | 
                  if $data_type =~ /[A-Z]/;  | 
              
| 238 | 238 | 
                                   my $fname = $type_rule->{"from$i"}{$data_type};
                 | 
              
| ... | ... | 
                  @@ -300,7 +300,7 @@ sub end_filter {
                 | 
              
| 300 | 300 | 
                  @_ > 1 ? [@_] : $_[0]  | 
              
| 301 | 301 | 
                  );  | 
              
| 302 | 302 | 
                  }  | 
              
| 303 | 
                  -        foreach my $column (keys %$end_filter) {
                 | 
              |
| 303 | 
                  +        for my $column (keys %$end_filter) {
                 | 
              |
| 304 | 304 | 
                               my $fname = $end_filter->{$column};
                 | 
              
| 305 | 305 | 
                               if  (exists $end_filter->{$column}
                 | 
              
| 306 | 306 | 
                  && defined $fname  | 
              
| ... | ... | 
                  @@ -20,7 +20,7 @@ sub _array_to_hash {
                 | 
              
| 20 | 20 | 
                  my $f = $array->[$i + 1];  | 
              
| 21 | 21 | 
                   | 
              
| 22 | 22 | 
                           if (ref $key eq 'ARRAY') {
                 | 
              
| 23 | 
                  -            foreach my $k (@$key) {
                 | 
              |
| 23 | 
                  +            for my $k (@$key) {
                 | 
              |
| 24 | 24 | 
                                   $hash->{$k} = $f;
                 | 
              
| 25 | 25 | 
                  }  | 
              
| 26 | 26 | 
                  }  | 
              
| ... | ... | 
                  @@ -17,7 +17,7 @@ sub new {
                 | 
              
| 17 | 17 | 
                   | 
              
| 18 | 18 | 
                  # Check attribute names  | 
              
| 19 | 19 | 
                  my @attrs = keys %$self;  | 
              
| 20 | 
                  -    foreach my $attr (@attrs) {
                 | 
              |
| 20 | 
                  +    for my $attr (@attrs) {
                 | 
              |
| 21 | 21 | 
                           croak qq{"$attr" is invalid attribute name (} . _subname . ")"
                 | 
              
| 22 | 22 | 
                  unless $self->can($attr);  | 
              
| 23 | 23 | 
                  }  | 
              
| ... | ... | 
                  @@ -31,7 +31,7 @@ sub to_string {
                 | 
              
| 31 | 31 | 
                  # Check if column name is safety character;  | 
              
| 32 | 32 | 
                  my $safety = $self->dbi->safety_character;  | 
              
| 33 | 33 | 
                       if (ref $self->param eq 'HASH') {
                 | 
              
| 34 | 
                  -        foreach my $column (keys %{$self->param}) {
                 | 
              |
| 34 | 
                  +        for my $column (keys %{$self->param}) {
                 | 
              |
| 35 | 35 | 
                               croak qq{"$column" is not safety column name (} . _subname . ")"
                 | 
              
| 36 | 36 | 
                  unless $column =~ /^[$safety\.]+$/;  | 
              
| 37 | 37 | 
                  }  | 
              
| ... | ... | 
                  @@ -2878,7 +2878,7 @@ $rows = [  | 
              
| 2878 | 2878 | 
                  ];  | 
              
| 2879 | 2879 | 
                   {
                 | 
              
| 2880 | 2880 | 
                  my $query;  | 
              
| 2881 | 
                  -    foreach my $row (@$rows) {
                 | 
              |
| 2881 | 
                  +    for my $row (@$rows) {
                 | 
              |
| 2882 | 2882 | 
                  $query ||= $dbi->insert($row, table => $table1, query => 1);  | 
              
| 2883 | 2883 | 
                         $dbi->execute($query, $row, filter => {$key7 => sub { $_[0] * 2 }});
                 | 
              
| 2884 | 2884 | 
                  }  | 
              
| ... | ... | 
                  @@ -2899,7 +2899,7 @@ $rows = [  | 
              
| 2899 | 2899 | 
                   {
                 | 
              
| 2900 | 2900 | 
                  my $query;  | 
              
| 2901 | 2901 | 
                  my $sth;  | 
              
| 2902 | 
                  -    foreach my $row (@$rows) {
                 | 
              |
| 2902 | 
                  +    for my $row (@$rows) {
                 | 
              |
| 2903 | 2903 | 
                  $query ||= $dbi->insert($row, table => $table1, query => 1);  | 
              
| 2904 | 2904 | 
                  $sth ||= $query->sth;  | 
              
| 2905 | 2905 | 
                         $sth->execute(map { $row->{$_} } sort keys %$row);
                 | 
              
| ... | ... | 
                  @@ -2921,7 +2921,7 @@ $rows = [  | 
              
| 2921 | 2921 | 
                   {
                 | 
              
| 2922 | 2922 | 
                  $model = $dbi->create_model(table => $table1, primary_key => $key1);  | 
              
| 2923 | 2923 | 
                  my $query;  | 
              
| 2924 | 
                  -    foreach my $row (@$rows) {
                 | 
              |
| 2924 | 
                  +    for my $row (@$rows) {
                 | 
              |
| 2925 | 2925 | 
                  $query ||= $model->insert($row, query => 1);  | 
              
| 2926 | 2926 | 
                         $model->execute($query, $row, filter => {$key7 => sub { $_[0] * 2 }});
                 | 
              
| 2927 | 2927 | 
                  }  |