Is this data being read from a file ? a database? Knowing where it comes from may help me formulate a guess. What you have should work fine. If you do something like the following , does it work any better (not that it should) :
my $key = $columns[0];
$hash{$key} = 1;
Also, you may want to use
Data::Dumper to print out the data structure to find out what is getting created.
$ perl -e 'do() || ! do() ;'
Undefined subroutine &main::try