>>484さん
ありがとうございます。
そうですよね。私も最初はそう思ったんですが…
でも色々新しいことの勉強もできたんで良かったです。

>>486さん
その方法を少し改造して
#$1が48以上だったら1を足す
$string =~ s/(?<![0-9])([1-9][0-9]|1[0-4][0-9])(?![0-9])/"\xf4" . chr(0x59 + ( $1 - 10 ) + ( $1 >= 48 ))/sge;

これでファイナルアンサーだろうと思って見せたら【( $1 >= 48 )】の部分を見て
「何だこれは?」と言うので説明したら
「これだと“1”が帰ってくるんじゃない!“true”が返ってくるんだよ!」と怒られたので

( $1 >= 48?1:0 )

に直しました。
これが今までベンチマークとった中では最速でした。

これで上司も満足?してくれたと思います。
皆さんありがとうございました。
「オレならこうするね」っていう意見もあれば勉強したいのでお願いします。