リファレンスとはなんぞや

データを入れる箱を変数とする。その箱のアドレスがリファレンス。
リファレンスが指す箱の中にあるデータにアクセスすることがデリファレンス
ちなみに変数は箱に付けた名前。

変数を使った代入

$a = 5;
$b = $a;
$b = 0;
print $a; #=> 5
print $b; #=> 0

箱の中のデータをコピーして別の箱に入れる。
$aと$bは別の箱なので、$bの値を変えても、$aの値は変わらない。

リファレンスを使った代入

$c = 5;
$d = \$c;  # リファレンスの代入
$$d = 0;   # デリファレンス
print $c;  #=> 0
print $$d; #=> 0 

箱の中のデータではなく、箱のアドレスを別の箱に入れる。
$cと$$dは同じ箱なので、$$dの値が変われば、$cの値も変わる。