#!/usr/bin/perl use strict; use warnings; my %hash = ( 0=>'nul', 1=>'foo', 2=>'bar', 3=>'max', 4=>'mor', 5=>'zig', ); my @keys = sort {$a <=> $b} grep {$_ > 1} keys %hash; my $i = 0; my $flag = 1; # damit der Abzweig nur einmal betreten wird while ( $i < @keys ) { if ( $flag && $keys[$i] == 3 ) { $flag = 0; %hash = ( 0=>'nul', 1=>'foo', 2=>'bar', 3=>'mor', 4=>'zig', ); @keys = sort { $a <=> $b } grep { $_ > 1 } keys %hash; $i--; next; } # if print "$keys[$i] => $hash{$keys[$i]}\n"; } continue { $i++ }