$fooにfooという文字列、$hogeにhogeという文字列が入っているとして、
$barにはfooを含む文字列が入っているとすると、

$bar =~ s/$foo/$hoge/;

としても置き換えはされないのですが、

$bar =~ s/foo/$hoge/;

としたら置き換えがされるのは何故でしょうか?
$fooが評価されていないということは分かったのですが、何故かが分かりません。