use strict; no strict "refs"; use CGI qw/:standard/; my (@compare, %other0, @catnames); %other0 = ( 'cat0'=>'3', 'cat1'=>'3' ); @compare = ('testone', 'testtwo'); @catnames = ('other0','other1'); print "this one works: $other0{'cat1'}\n"; print "problem here: ${$catnames[0]}{'cat1'}\n $catnames[0]->{'cat1'}";