>>478
やはり素直にハッシュを使うべきだと思うがな。

my %conv;
@conv{ 0..149 } = (
 map("\x82" . chr, 79..88),
 map("\xf4" . chr, 89..126, 128..229),
);

$string = Jcode->new($string, 'sjis')->tr($from1, $to1)->h2z->sjis;
$string =~ s/(?<![0-9])((?:1[0-4]?|[2-9])?[0-9])(?![0-9])/$conv{$1}/g;
$string =~ s/([0-9])/$conv{$1}/g;

これだけで済む事を、やれ条件分岐だサブルーチンだとコード
増やすのは馬鹿げてるし、無駄に重たくなるだけかと。

/g ではなく /e を使うなという事なら分からんでもない。
あとベンチ取る時は CPU time が最低 5 秒以上かかるように
試行回数増やさないと有用な数字が出ないよ。