http://qs1969.pair.com?node_id=220748


in reply to Unknown entries in %main::

(Update: I read your reply, so you really want to know. Okay, don't forget those perlvars named $^C (COMPILING), $^F (SYSTEM_FD_MAX) etc., when you print them, they show as little unrecognizable symbols. Use ord to print out their ascii values, then you will recognize them. :-)

The output from your code is not that meaningful, isn't it?

Yes, Symbol table is a hash, but not really that straight. Think about this, in a hash you can not have duplicate keys, but in your program, you might have a hash and a scalar both named abc.

Don't forget typeglob.
foreach $symname (sort keys %main::) { local *sym = $main::{$symname}; if (defined $sym) { print "\$$symname is defined, and value is $$symname\n"; } if (defined @sym) { print "\@$symname is defined, and value is @$symname\n"; } if (defined %sym) { print "\%$symname is defined, and value is %$symname\n"; } }