Как я могу напечатать строку (одиночную кавычку), содержащую символы с двойным обратным слепом \\
, так как это не делает Perl каким-то образом интерполируя его на однослое \
? Я не хочу изменять строку, добавив еще несколько символов escape.Как я могу предохранить Perl от интерпретации двойного обратного слэша в качестве символа обратной обратной косой черты?
my $string1 = 'a\\\b';
print $string1; #prints 'a\b'
my $string1 = 'a\\\\b';
#I know I can alter the string to escape each backslash
#but I want to keep string as is.
print $string1; #prints 'a\\b'
#I can also use single-quoted here document
#but unfortunately this would make my code syntactically look horrible.
my $string1 = <<'EOF';
a\\b
EOF
print $string1; #prints a\\b, with newline that could be removed with chomp
Позвольте мне угадать ... дело с файловыми путями Windows? – Schwern
Нет. Я передаю строки с одной кавычкой в подпрограммы, и эти строки содержат двойную обратную косую черту. – Omar
Ох. Не могли бы вы привести пример? Вам не нужно избегать двойных кавычек внутри одинарных кавычек. «Она сказала», вам не нужно избегать двойных кавычек в одинарных кавычках. »« Все в порядке. Поэтому используется 'qq []', если вы хотите интерполяцию, но не хотите избегать двойных кавычек. – Schwern