##
Pass 1:
c
Pass 2:
a <---- 'c' missing
b
d
Pass 3:
c
a
b
d
####
local $\ = "\n";
my %h = map { $_ => 1 } qw( a b c d );
for my $pass (1..3) {
print "Pass $pass:";
keys %h; # Reset iterator
while (my ($k,$v) = each %h) {
print $k;
last if $pass == 1;
}
}
####
Pass 1:
c
Pass 2:
c <---- Welcome back
a
b
d
Pass 3:
c
a
b
d