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


in reply to While Loops

Your spec is a little ambiguous to me, but if I follow, you can do what you need using Slices and %, perhaps like:
for my $i (0 .. @data/100) { my $max = $i * 100 + 99; $max = @data - 1 if $max > @data - 1; print @data[$i * 100 .. $max]; }

Of course, you'd presumably want to do something between those prints.


#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.

Replies are listed 'Best First'.
Re^2: While Loops
by tbone654 (Beadle) on Jan 08, 2013 at 19:07 UTC

    How about something like this?

    foreach $a (0..@data-1) { print or do something ; } ## end of foreach

    If you have the length of the array it knows then when to stop.

      1. You should not use $a as your index variable, or really ever as a generic variable. $a and $b have special meaning for sort.
      2. I'm unclear on how your strategy splits the array into chunks of 100 records. There are certainly a myriad of ways to get this done, but it's not obvious to me how this is one of them.

      #11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.