文字列 $str の末尾の「.cpp」を「.o」に置換し新たな文字列 $new_str を生成したいのですが
s/// だと元文字列を書き換えてしまいます
コピーしてから置換でも良いのですが、書き換えずに置換する関数や演算子はないでしょうか?