sub mkBless($;$) { my $targ = shift; if (@_) { ${$targ} = shift unless blessed $targ; } \$targ } sub RepoDB($;$) { my $p = shift; my $nam = shift; my $cpeid; die P "RepoDB: can't access Vdata w/o cpeid" unless $cpeid=$p->cpeid and $cpeid =~ /^\d{8}$/; my $obj = mkBless(\$p->{Vcpeid}{$cpeid}, RepoVData->new); $obj = mkBless(\$obj->{RepoDB}, RepoDB->new()); $obj = mkBless(\$obj->{$nam}, VR->new()); if (@_) { $$obj = shift; } $obj }