То, что вы хотите сделать, - это свернуть каждое вхождение от \\
до \
. Однако вам нужно избегать каждого вхождения \
, когда вы фактически используете его в своем регулярном выражении, например:
use strict; use warnings;
my $a = '\\\abc.com\a\t\temp\L\\';
# match \\\\ and replace with \\
(my $b = $a) =~ s/\\\\/\\/g;
print $b . "\n";
... что дает строку literal :
\abc.com\a\t\temp\L\
Обратите внимание, что я не указал входную строку в двойных кавычках, как вы. Не совсем понятно, с какой строки literal вы начинаете, как если бы она была указана в двойных кавычках, она должна иметь больше обратных слешей (каждые два обратных слеша становятся равными одному). См. Обсуждение интерполяции в разделе perldoc perlop , как я уже упоминал в ответе на ваш другой вопрос.