Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

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>";
Replies are listed 'Best First'.
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 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 Tux (Canon) 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
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;
        لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Log In?

What's my password?
Create A New User
Domain Nodelet?
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 rifling through the Monastery: (7)
As of 2022-01-27 11:01 GMT
Find Nodes?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:

    Results (70 votes). Check out past polls.