in reply to Hash within a hash from dynamic data.. how?

Instead of:

$access{sports} .= {$s => 1};

You probably want:

$access{sports}{$s} = 1;

You might want to see perldsc for a nice doc about datastructures, and perlreftut for a nice introduction to references.