use strict; my %hash = (test1 => 1, test2 => 2, test3 => 3, test4 => 4); my @array = sort(keys(%hash)); my $counter = 0; my $resetter = undef; my $resets = 0; while($counter <= $#array){ if(defined($resetter)){ $counter = 0; $resets++; } $resetter = undef; print $hash{@array[$counter]}; $counter++; $resetter = 1 if $counter > 2 and $resets < 2; }