http://www.perlmonks.org?node_id=164404


in reply to symbol tables and class data members

You must qualify @aa because it's a package variable, and under 'use strict' you must qualify all package variables. If something is in the symbol table, it must be fully-qualified under strict unless you've declared it with 'our'. (Or use vars if you're not on the latest Perl.)

It seems to me that what you want is a way of doing symbol-table hacking with lexical vars, and I'm afraid that that's not possible because lexical vars don't appear in the symbol table.

I'd suggest declaring your vars with 'our'.

stephen