my @color = qw( black red yellow green blue cyan magenta white ); my @on_color = map "on_$_", @color; my @special = (undef,qw( dark bold underline underscore blink reverse concealed )); my @sy = ('a'..'e'); for my $w (0..8) { for my $x (0..8) { for my $y (0..4) { for my $z (0..5) { my $tmp = join(' ',$color[$x],$on_color[$w],$special[$y]); ... etc. } } } }