$body = qq(<body bgcolor="$bgcolor" background="$background" text="$text" link="$link" vlink="$vlink" alink="$alink">);

$bodyが消える理由はわからんが。
スコープ外とかいうオチじゃないかな?