in reply to Returning a tied scalar

I don't like the way you have to declare a checked variable:
$intfactory->Monitor(\ my $var) = 42;

Yes that's ugly. You can at least get rid of the backslash. $_[1] paseed to the method is an alias to $var so \$_[1] is \$var.

Note also that the value of a scalar assignment is itself an lvalue.

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);

If you want more syntactic sugar then take a look at attributes.