eval(' package '.$package.'; sub '.$accessor.' { my $t=shift; $t->{'.$var.'}=$_[0] if @_; $t->{'.$var.'}; } ') #### eval(sprintf( ' package %s; sub %s { my $t=shift; $t->{%s}=$_[0] if @_; $t->{%s}; } ', $package, $accessor, $var, $var ))