develooper Front page | perl.perl5.porters | Postings from June 2008

How to dig through symbol tables

Thread Next
From:
sorourke
Date:
June 19, 2008 16:18
Subject:
How to dig through symbol tables
Message ID:
55541.169.232.215.196.1213898323.squirrel@acs-webmail.ucsd.edu
I'm trying to figure out the "right" way to dig through a
program's symbol table without disrupting it.  According to the
docs, "defined" only works for scalars and subs.  I would think
that "defined *{FOO}{THING}" would work for everything, but it
exhibits this annoying behavior:

    $ perl -le 'sub x{};for (qw(SCALAR ARRAY HASH CODE IO)) { print
"foo-thing $_" if defined *{x}{$_}; }'
    foo-thing SCALAR
    foo-thing CODE

Indeed, if any other slot is defined, *{FOO}{SCALAR} seems to be
defined.  Is this intended behavior?

I am currently using *{FOO}{THING} for everything but scalars,
and (afterwards) "defined $FOO" for scalars, but it seems like
there should be a better way.

Sean


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About