If you look through my examples you will find symbolic
references being used as well. Turning around a recent
discussion between us, this is the same issue as using
AUTOLOAD all over. Using it immediately opens you up to
all sorts of confusions and possible kinds of grief. But
with it you can effectively write a program that writes
your code for you - which can accomplish very powerful
things. Therefore use it, with caution, wisely, but only
where it makes sense.
In other words all rules are there because most of the
time they make your life easier. But they have exceptions,
and when you arrive at a legitimate exception, you should
not fear unnecessarily to break the rule. However if you
find yourself often deciding that the rule is to be
broken, then you are probably doing something seriously
wrong and you are probably mistaken. (Because, after all,
most of time the rule is right!)