${ *{${ns} . '::foo'} } = $cram; #### ${ $::{$ns.'::'}{foo} } = $cram; #### #!/usr/bin/perl -l use strict; use warnings; my $ns = 'Teddy::'; ${ $::{$ns}{foo} } = 'cheese'; print '$Teddy::foo: ', $Teddy::foo; # or the other way round $Teddy::foo = 'bar'; print '${ $::{$ns}{foo} }: ', ${ $::{$ns}{foo} }; __END__ $Teddy::foo: cheese ${ $::{$ns}{foo} }: bar #### print grep /Teddy/, keys %::; # Teddy:: print $::{'Teddy::'}; # *main::Teddy:: print keys %{$::{'Teddy::'}}; # foo print $::{'Teddy::'}{foo}; # *Teddy::foo #### $::{'Teddy::'}{foo} = \'cheese'; print $Teddy::foo; # cheese $Teddy::foo = 'bar'; # "Modification of a read-only value attempted at ..."