$x = $y if ! $x;

これってどう解釈すればいいんでしょうか・・・

$yが真だったら$yが代入される
$yが非だったら$xが代入される(値は変わらない)

ってことで大丈夫ですか?