2013-07-31 3 views
1
my %result = "\\path\tfolder\file.txt"; 

Как игнорировать escape-последовательность \ t без добавления символа '\'. Есть что-то вроде:Игнорирование управляющих символов в perl

my %result = r"\\path\tfolder\file.txt"; 

Вышеуказанное не работает.

+4

Вы всегда должны использовать 'use strict; использовать предупреждения, 'в ваших скриптах. Если бы у вас было, вам было бы дано предупреждение «Нечетное количество элементов в хэш-присваивании в ...». Вы также должны знать, что высказывание «это не работает» - очень и очень плохой способ описать проблему программирования , – TLP

ответ

2

Одинарные кавычки обрабатывать два управляющие последовательности: \\ и \', так что вам придется удвоить ведущую двойную обратную косую черту, но не других:

my $result = '\\\\server\toppath\files'; 

Чтобы получить то, что вы хотите, вы можете использовать здесь- документ за счет некоторой синтаксической массы.

chomp(my $result = <<'EOPath'); 
\\server\toppath\files 
EOPath 

Обратите внимание на изменение сигилой от % к $, поскольку строка является скаляром, а хэши для ассоциаций.

+0

$ a = '\\ server \ toppath \ files'; print $ a; – Nemo

+0

это принт \ сервер. Как это исправить? – Nemo

+0

http://ideone.com/RfdQOW – Nemo

Смежные вопросы