package nodeOfSomeKind; sub new { my $node = { refToParent => undef, hashParams => {}, arrayOfKids => [], }; return bless $node; } #### package Globject; our %classes; sub new { my $class = shift; # keep it unique my $symbolname = $class . ++$classes{$class}; my $tGlob = \*{$symbolname}; delete $Globject::{$symbolname}; # kill the package global return bless($tGlob, $class); } #### sub foo { my ($foo, @foo, %foo); # now, within this lexical scope, are these names related return $foo; }