in reply to Re: Generate a # between 1 and 50 in groups of 5
in thread Generate a # between 1 and 50 in groups of 5

The  $count counter is not needed because the  natatime() iterator is exhausted after completely iterating over its list. (Such a counter would be needed if you wanted to stop short of iterator exhaustion.)

c:\@Work\Perl>perl -wMstrict -le "use List::Util 'shuffle'; use List::MoreUtils qw(natatime); ;; my $iterator = natatime 5, shuffle 1 .. 50; ;; while (my @five = $iterator->()) { print qq{@five}; } ;; print '---------'; while (my @five = $iterator->()) { print qq{@five}; } " 47 16 22 40 27 14 8 35 36 21 46 43 9 42 17 31 2 18 33 24 11 1 44 7 3 38 49 41 25 39 15 37 29 12 5 23 45 10 6 26 20 19 28 50 34 32 13 4 30 48 ---------


Give a man a fish:  <%-(-(-(-<

Replies are listed 'Best First'.
Re^3: Generate a # between 1 and 50 in groups of 5
by karlgoethebier (Abbot) on Jan 31, 2015 at 12:03 UTC

    The OP wrote:

    "I want the program to terminate after it does this for 5 cycles"

    You wrote:

    "..if you wanted to stop short..."

    That's what i wanted. My output:

    karls-mac-mini:monks karl$ ./1115111.pl 30 26 3 46 23 10 45 47 1 39 8 11 19 49 36 15 22 29 37 18 13 50 44 25 42

    This are five cycles with five numbers.

    Please correct me if i miss something.

    Update: But i I surrender:

    Alternate version:

    for ( 1 .. 5 ) { my @five = $iterator->(); say join " ", @five; }

    Best regards, Karl

    «The Crux of the Biscuit is the Apostrophe»

      I may have been the one to have missed something. I read "... generate a number between 1 and 50 in groups of 5." in the OP and got the idea of exhausting the set of 50 numbers fixed in my head. I missed the subsequent "... terminate after ... 5 cycles." requirement.


      Give a man a fish:  <%-(-(-(-<