in reply to how do $x = \12 differ from $$y = 12 ?

Well the two differ semantically in the first you are taking a reference to a scalar constant and in the second you are assigning a scalar constant to a dereference scalar ref. The first will be a readonly value. In these cases Devel::Peek is your friend:

$x: SV = RV(0x8086d20) at 0x807b2e8 REFCNT = 1 FLAGS = (PADBUSY,PADMY,ROK) RV = 0x807b30c SV = IV(0x807ae44) at 0x807b30c REFCNT = 2 FLAGS = (IOK,READONLY,pIOK) IV = 12 $y: SV = RV(0x8086d24) at 0x807b2f4 REFCNT = 1 FLAGS = (PADBUSY,PADMY,ROK) RV = 0x804c500 SV = IV(0x807ae4c) at 0x804c500 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 12

/J\