http://qs321.pair.com?node_id=235620


in reply to How to iterate by fives?

use the modulus operator -- % isn't just for hashes.
for (1..100) { print "$_ "; print "\n" if ($_ % 5 ==0); # add a break (or other string) every +5 elements }
There are other ways to do it, but that's the most perl, I think.
Other ways?
@foo = map {$_*5} (1..10); # generate a list by fives. print join " ", @foo,"\n\n"; # see the fives. print "<table>"; # replace with calls to CGI.pm as appropriate. for my $ctr (0..$#foo) { print " <tr>\n "; print " <td>$_</td>" for (($ctr*5)+1 .. $foo[$ctr]); print "\n </tr>\n"; } print "</table>\n\n";

Replies are listed 'Best First'.
Re: Re: How to iterate by fives?
by moof1138 (Curate) on Feb 15, 2003 at 23:14 UTC
    Thanks! I knew I was missing the obvious here. A modulus did the trick:
    for my $i (1 .. $itemnum){ push (@tmp_row_items, $q->td($q->textfield( -name => "$champar +ray[$productcount][0]$i", -default => "$champarray[$productcount][$i] +", -size => 25))); if ($i % 5 == 0) { push (@rows, $q->td(@tmp_row_items)); @tmp_row_items = (); } }