in reply to returning a tied variable

If you declare
sub x:lvalue{ ... ;$tied} #last expression, no "return"
then you are "copying" (after a fashion) the var. Thats at least what the docs say, I haven't tried it.