use strict; use warnings; srand 12345; my %pick = map { $_ => 1 } 1 .. 5, 8, 12 .. 16, 19, 22, 25, 37 .. 41, 62, 75, 77; my @letters = ( q{a} .. q{e} ); my %data = map { $_ => { key => $letters[ rand @letters ] } } 1 .. 80; printf qq{key %2d and %s\n}, unpack q{xNXXXXXa} for sort map { pack q{aN}, $data{ $_ }->{ key }, 0 + $_ } keys %pick;