in reply to Weird hash access problem

Try this (Basic debugging checklist, Tip #3):
print ">>>$1<<<"; #print "a1"
You will see that there is a space after a1:
>>>a1 <<<
'a1 ' is not the same as 'a1' as a hash key.

You should also use warnings because it tells you which line is fishy.

See also: chess