{ my $re = qr/\\(.)/; sub encode ($) { my $str = $_[0]; $str =~ s/$re/{ sprintf '\\%03d', ord($1) }/ge; return $str } } { my $re = qr/\\(\d{3})/; sub decode ($) { my $str = $_[0]; $str =~ s/$re/{ '\\' . chr($1) }/ge; return $str } } #### my @splitted = map { decode $_ } split ',', encode('hel\,lo,world')