in reply to Dereferencing a reference to a typeglob?
As other have said, typeglobs are globals. If you're comfortable with that, then this will get you started on how to assign to, and dereference them:
our *a = \25; *a = [1..10]; *a = { 'a'..'z' };; printf "Scalar:%s\nArray:[ %s ]\nHash:{ %s }\n", $a, join(',', @a ), j +oin('.', %a );; Scalar:25 Array:[ 1,2,3,4,5,6,7,8,9,10 ] Hash:{ w.x.e.f.a.b.m.n.s.t.y.z.u.v.c.d.k.l.q.r.g.h.i.j.o.p } printf "Scalar:%s\nArray:[ %s ]\nHash:{ %s }\n", ${*a}, join(',', @{*a +} ), join('.', %{*a} );; Scalar:25 Array:[ 1,2,3,4,5,6,7,8,9,10 ] Hash:{ w.x.e.f.a.b.m.n.s.t.y.z.u.v.c.d.k.l.q.r.g.h.i.j.o.p }
Of course, that's only three of the six things that can live in a typeglob; but I'd have to look the others up as I've rarely used them.
If you want the full skinny on them, see MJD's page on them.
|
|---|