I agree with the idea of Rule 6 that it's handy to know what kind of thing a reference variable is referring to. I also agree with this comment that prefixing something like
aref is irritating for holding up my perception of the variable in question. Instead, I get clarity and brevity by postfixing this info, i.e. for defining a scalar reference for
@foo_bar I like to use the entire original identifier suffixed with an underscore and two letters as in
$foo_bar_ar rather than
$aref_foo. Expanded:
_hr => hash reference
_ar => array reference
_sr => scalar reference
_xr => executable(sub) reference