I did try that and it does not work, at least not on my 5.10.1
DB<2> $s = Symbol::gensym
DB<3> x ${*$s}{goo} = 'ber'
0 'ber'
* DB<4> x \%{*$s}{goo}
syntax error at (eval 8)[/usr/share/perl/5.10/perl5db.pl:638] line 2,
+near "}{goo"
* DB<5> x \%{*$s}
0 HASH(0x86285e8)
'goo' => 'ber'
* DB<6> x \%{*Symbol::GEN0}
0 HASH(0x87144e0)
empty hash
* DB<7> x ${*Symbol::GEN0}{goo}
0 undef
DB<8> x $]
0 5.010001
DB<9> x $s
0 GLOB(0x86285b8)
-> *Symbol::GEN0
...
* DB<8> x \%{*Symbol::GEN0}
0 HASH(0x8aab260)
empty hash
* DB<9> x \%{*{Symbol::GEN0}}
0 HASH(0x8aab260)
empty hash
* DB<10> x \%{*{*Symbol::GEN0}}
0 HASH(0x8aab260)
empty hash
* DB<11> x \%{'' . *$s}
0 HASH(0x8aab260)
empty hash
* DB<12> x \%{*$s}
0 HASH(0x8a5b5e8)
'goo' => 'ber'
* DB<13> use Scalar::Util qw(refaddr)
DB<14> x \%{*refaddr($s)}
syntax error at (eval 20)[/usr/share/perl/5.10/perl5db.pl:638] line 2,
+ near "*refaddr("
* DB<15> x \%{refaddr($s)}
0 HASH(0x8b6eea0)
empty hash
* DB<16> x \%{sprintf "%x", refaddr($s)}
0 HASH(0x8b73ef0)
empty hash
* DB<17> x \%{*{"$s"}}
0 HASH(0x8b73c10)
empty hash
It does not show up when I dump \%:: (or \%Symbol or \%Symbol:: or \%Symbol::GEN0 or \%Symbol::GEN0:: either (excluded for brevity) at least not that i can see. |