use strict; open RGB,'<','c:/cygwin/usr/X11R6/lib/X11/rgb.txt' or die $!; while (my $line = ) { next if $line =~ m/^\s*$/; next if $line =~ m/^(?:!|#)/; my ($r,$g,$b,$name) = $line =~ m/(\d+)\s+(\d+)\s+(\d+)\s+(.*)/; printf "#%02X%02X%02X\t%s\n",$r,$g,$b,$name; } close RGB;