in reply to Problem generating a hashtable

It works OK for me (perl 5.8.5 on Linux). Are you sure you're presenting the actual code?

Also, you can simplify the map as follows:

my %hash = map { (split /:/)[0,2] } <FILE>;

Paul