2014-12-30 2 views
1

Я пытаюсь избежать знака @ в perl, но я потерпел неудачу с тем, что я пробовал. Я даю код ниже, а также вывод. Запрос помощи для решения проблемы.Невозможно сбежать @ sign in perl

my $p4com = 'p4 print $java_file\@='.$changelist_no; 
print $p4com; 
my $fileContent = `p4 print $java_file\@=$changelist_no`; 
print $fileContent; 

Ошибки кода и команда, которую я пытаюсь запустить, также терпят неудачу. То, что я пытаюсь сделать, это распечатать файл perforce, измененный в определенном списке изменений.

Ошибка на выходе:

p4 print //.../smp/configbasetemplate/client/Dummy.java 
@=175085sh: line 1: @=175085: command not found 

ответ

4

Проблема заключается не в том, что вы не в состоянии избежать @, это то, что у вас есть символ новой строки в конце $java_file, так что оболочка интерпретирует @=175085 часть как отдельная команда.

Чтобы удалить проблемный символ новой строки, написать:

chomp $java_file 
+0

Спасибо так много. Это сработало :) :) – moiz134

+0

@ moiz134: Добро пожаловать! – ruakh