perlで以下の2文字("-"と"_")をJSON形式に変換したいです。JSONとして使用します。しかし、私は変換に失敗しました。これらのユニークな 2 つの文字を変換する方法を知りたいです。
フォーマット
'--'    -> ':'
'-_'    -> '{'
'_-'    -> '}'
'__'    -> ','
これが私のプログラムです
#!/usr/local/bin/perl
use strict;
use warnings;
sub toJsonFormat {
  my $self = shift;
  my $str = shift;
  $str =~ s/-_/{/g;
  $str =~ s/_-/}/g;
  $str =~ s/--/:/g;
  $str =~ s/__/,/g;                                                                                                          
  return $str;
}
これはサンプルです
コードを試す
toJsonFormat('-_service---_key--value_-__-_key--value_-__service---_key--value_-_-')
期待される
"{service:{key:value},{key:value},service:{key:value}}"
手に入れた
'{service:{key:value_{_{key:value_{_service:{key:value_{-'
期待されるキャラクターに変換するアイデアがあれば教えてください。
前もって感謝します。