##
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;
}