in reply to use constant for strings

Ahh yes, you've hit the bugaboo with using =>. It's very very very quotey. It quotes even subroutine names (as long as they are simply bare words), which is what a use constant ends up being. Either switch to comma instead of arrow, or invoke your subroutine:
my %capitol_map = ( WISCONSIN() => "Madison", ILLINOIS() => "Springfield", ... );

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.