Konsole may support more than 8 colors but if your TERM environment is set wrong then the OS won't know it can. If you bypass the OS and print the color escape sequences directly (as the script is doing, naughtily[1]) then it might just work.
[1] The proper way is to use terminfo to output the escape sequences for you. See http://perldoc.perl.org/Term/Cap.html for how to do this with standard Perl. EDIT: I can't get this to work—Seems Perl has poor terminfo support. :-( "tput setaf 10" is the correct way from sh.