lvalue subs will be useful, but only with a lot of ugly syntax. I hope that macros and attributes will be powerful enough to fix this, and suspect that they will be, though it still jars me that I'll need to depend on the module that has the macros in it.
Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).