perl дампер данных: как обрабатывать строку с обратной косой чертой - PullRequest
0 голосов
/ 25 мая 2020

как «сбросить» строку с помощью backsla sh, не показывая ее как двойную backsla sh?

Это:

my $str = 'a\b';
print Dumper $str;

выведет: $VAR1 = 'a\\b'; вместо этого $VAR1 = 'a\b';

Как вы понимаете, это вызовет «шок» во время сеанса отладки.

Есть ли способ сбросить строку с одним backsla sh?

1 Ответ

1 голос
/ 25 мая 2020

Существует бесконечно много способов создать трехсимвольную строку a\b, включая следующие:

  • 'a\b'
  • 'a\\b'
  • "a\\b"
  • "a\x5Cb"
  • join(chr(0x5B), qw( a b ))
  • pack('H*', '615C62')

Data :: Dumper не знает, какой код был использован для создания строки. DD используется для генерации действительного кода Perl, который при выполнении создает предоставленную строку, и именно это он делает, когда создает 'a\\b' для a\b. Обратную косую черту (\) иногда нужно экранировать в строковых литералах, заключенных в одинарные кавычки, поэтому DD всегда экранирует ее, чтобы все было просто и согласованно (как и я).

Если вы не хотите генерировать Perl код, не используйте Data :: Dumper.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...