$a='ab';
$b='abcde';
$b=~ s/$ac/999/o;
print $b;

結果
999abcde
となるのはなぜ?
s/($a)c/999なら999deになるのはわかる。
999が先頭に追加されているということは置換成功しているの?
詳しい人教えてください