<span style="font-family: courier new,monospace;">Liam is the closest with his analogy with C.</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
Without clouding the issue with facts, I'd summarize with:</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">a) Every time the 'my' statement is executed, it creates the variable anew.
</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> (I.e. allocates memory for the variable. etc.)</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
b) Regardless of whether or not you take a reference to it.</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">c) Regardless of whether garbage collection occurs.</span>
<br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">And looking for the same memory address doesn't mean</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">it is, or is not the 'same variable' because free() & malloc()</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
and a bunch of other code may, or may not have been run<br></span><span style="font-family: courier new,monospace;">(that you don't know of) </span><span style="font-family: courier new,monospace;">to re-set-up that variable,
</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">even if it _was_ the same address.</span><br style="font-family: courier new,monospace;"><br>