# instead of #sub value #{ # my ( $self ) = ScriptRunner->new(); # return $self->{'driver'}->value; #} sub make_wrapper { my $name = shift; return sub { ScriptRunner->new()->{'driver}->$name(@_); } } *value = make_wrapper('value'); *reset_counter = make_wrapper('reset_counter); ... # (untested)