One thing to bear in mind, and which may cause your readers some confusion, is that references are *not* pointers. While it is true that if you stringify a reference:
in reply to The Concept of References
you get what looks like an address, that is only a convenient way of uniquely representing the thingy that $a refers to. You can't manipulate that string to make it refer to something else like you can in C - that is, you can't do pointer arithmetic.
$a = \100; # $a is a reference to a scalar
Sometimes I wish you could.