You can use Storable
use Storable qw(nfreeze thaw);
$scalar = nfreeze(\%hash);
%hash_copy = %{ thaw($scalar) };
If you need to have hash with keys - usenames and values as data structure (not scalar) you can use tie... for binding to sql database use eg. Tie::RDBM module. Example from docs:
use Tie::RDBM;
tie %h,Tie::RDBM,'mysql:test',{table=>'Demo',create=>1,autocommit=>0};
$h{'key1'} = 'Some data here';
$h{'key2'} = 42;
$h{'key3'} = { complex=>['data','structure','here'],works=>'true' };
$h{'key4'} = new Foobar('Objects work too');
print $h{'key3'}->{complex}->[0];
tied(%h)->commit;
untie %h;