in reply to Problem generating a hashtable

i don't have a reply to your question directly, but wouldn't only one split work better?
my %hash = map { my ( $one, $two ) = (split /:/, $_ )[0,2]; $one => $two; } <FILE>;
i didn't test this... so i can't be sure. it just seems more efficient to only split once. you can also test the values of $one and $two to see if you can find the problem.

Update: yep, i guess he did say he won't actually be using two splits. my bad... i take it all back!