my %Deosil = (); my %Widder = (); do { my @c = qw(north northeast east southeast south southwest west northwest); my @d = ($c[$#c], @c, $c[0]); %Deosil = (@d, @c); %Widder = reverse %Deosil; };