Text::VisualWidth::PP をだした
http://search.cpan.org/~tokuhirom/Text-VisualWidth-PP-0.01/
Text::VisualWidth をつかうと、文字の見た目上の幅で trim ったり width をはかったりすることができるのだが、XS が必須なので、XS がいらないバージョンをつくった。
mobirc の android view で Text::VisualWidth をつかっている部分があって、XS がそこだけ必須になっていたので、それをなんとかするための施策です。
速度的には original の T::VW よりだいぶ遅いです。どうしても PP がいい、という場合以外にはオススメしません。
Rate pp orig pp 1285/s -- -98% orig 81109/s 6210% --
PP でもこうしたらはやくなるよ、というアイデアがあればうけつけますが、自分の用途的にはこの程度の速度でも十分なので、まあよし。