JSON::Syckを使ったDumpでちょっとハマったのだけど、コレを使ってJSONエンコードを行うと、エスケープシーケンスがそのまま(?)出てしまって、微妙なかんじになる。
$ perl -MJSON::Syck=Dump -E 'say Dump({ hoge => "fu\x{1b}ga" })' {"hoge":"fu\ega"}
多分こういうのはUnicode escape sequenceで表現されるべきなのだけど、JSON::Syckではそれが出来なそう…
なので、素直にJSON::XSとかを使った方が良さげ。
$ perl -MJSON::XS -E 'say JSON::XS->new->encode({ hoge => "fu\x{1b}ga" })' {"hoge":"fu\u001bga"}