Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Random Color Generator

by Elihu (Novice)
on Feb 03, 2000 at 08:05 UTC ( #2775=sourcecode: print w/ replies, xml ) Need Help??

Category: HTML Utility
Author/Contact Info Elihu
Description: This is a cgi script that generates an 8 by 8 grid of random colors with their appropriate hex values. Useful for picking colors for web pages.
#!/usr/bin/perl -w
# HTML Color Generator
# by Rob Hudson (
# June 1, 1999
use strict;
my @colors;

for (my $i = 0; $i < 64; $i++) {

  my ($rand,$x);
  my @hex;

  for ($x = 0; $x < 3; $x++) {
    $rand = rand(255);
    $hex[$x] = sprintf ("%x", $rand);
    if ($rand < 9) {
      $hex[$x] = "0" . $hex[$x];
    if ($rand > 9 && $rand < 16) {
      $hex[$x] = "0" . $hex[$x];
  $colors[$i] = "\#" . $hex[0] . $hex[1] . $hex[2];

print "Content-type: text/html\n\n";
print "<HTML><HEAD><TITLE>Random Color Generator</TITLE></HEAD>";
print "<BODY BGCOLOR=\"#FFFFFF\">\n";
print "<H2><CENTER>Random Color Generator</CENTER></H2>";

my $count = 0;
for (my $i = 0; $i < 8; $i++) {
  print "<TR>\n";
  for (my $x = 0; $x < 8; $x++) {
    print "<TD BGCOLOR=\"#E0E0E0\"> $colors[$count++] </TD>";
  print "</TR><TR>\n";
  $count -= 8;
  for (my $y = 0; $y < 8; $y++) {
    print "<TD BGCOLOR=\"$colors[$count++]\"> &nbsp;<BR>&nbsp;</TD>\n"
  print "</TR>\n";
print "</TABLE></BODY></HTML>";

Comment on Random Color Generator
Download Code
RE: Random Color Generator
by subpop (Sexton) on Mar 10, 2000 at 06:10 UTC
    randomly cool. I ran it through another script that kept the pages coming. made for a nifty light show...
Re: Random Color Generator
by salvadors (Pilgrim) on Dec 31, 2000 at 16:31 UTC
    That's quite a longwinded way of generating the colors array. Especially as you do exactly the same in each part of the 'if'!

    I'd use something like:

    my @colors = map { join "", map { sprintf "%02x", rand(255) } (0..2) } (0..63);


Re: Random Color Generator
by OfficeLinebacker (Chaplain) on Sep 14, 2006 at 15:55 UTC
    Greetings, esteemed monks!

    Pretty sweet. For generating just one random color, I used

    my @ca=('0','3','6','9','C','E'); my @bgc=('','',''); foreach my $c (@bgc){ $r=int(rand(6)); $c=$ca[$r].$ca[$r]; } my $bgc=join("",@bgc);


    I like computer programming because it's like Legos for the mind.

      my ($red, $green, $blue) = (int(rand(255)), int(rand(255)), int(rand(2 +55))); print qq{<div style="background-color: rgb($red, $green, $blue);"></di +v>};
        Or, if you do not want to repeat yourself:
        my ($red, $green, $blue) = map int rand 255, 1 .. 3;
        لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
Re: Random Color Generator
by Tux (Monsignor) on Jun 06, 2013 at 13:21 UTC

    Those are the fun projects in our fav scripting language :)

    Not to be pedantic, but I rewrote the script to be both more perlish and more xhtml compliant. A lot of your variables are unneeded. The first part is html and css only, the last (very simple) loop incorporates all your fun

    Enjoy, Have FUN! H.Merijn

Back to Code Catacombs

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://2775]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (9)
As of 2015-07-02 02:18 GMT
Find Nodes?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...

    Results (25 votes), past polls