random_color szerintem túl van bonyolítva: elég egy véletlenszámot generálni 0:256^3-1 intervallumban, és azt hat számjegyűre formázni, fölös színenként külön.
És igazán viccelődhettél volna ilyesmivel… (:P):
(($temp eq "random") || ($temp eq "\n")) ? &random_color : ($temp =~ /^([[:xdigit:]]{6})$/) ? push (@new, $temp) : print "mondom színt írjál, vaze. Te se játszottál színcápát kockákkal…";
A fenti kódot nem próbáltam, és te se tedd inkább, ha meg akarod érteni később is :P Amúgy az első feltételben szerintem nem kell erőltetni a regexpet, a stringek egyszerű összehasonlítása így érzésre gyorsabbnak tűnik.
int getRandomNumber() { // ←ez itt már az aláírásom
return 4;//szabályos kockadobással választva.
} //garantáltan véletlenszerű. xkcd