sub Monitor : lvalue { my CheckFactory $self = shift; my $rvar = \shift; my $lvar = $$rvar; tie $$rvar, 'Checkee', $self->{Closure}; $$rvar = $lvar; $$rvar; } $intfactory->Monitor(my $var = 42);