my %vols = ( Ben => 5, Scott => 4, Jim => 1, ); my $batches = 98; OUTER: { while (my ($v, $c) = each %vols) { foreach (1 .. $c) { say $v; last OUTER unless $batches--; } } redo; }