Анализ аргументов командной строки без игнорирования обратной косой черты

#perl #arguments #command-line-arguments #backslash

#perl #аргументы #аргументы командной строки #обратная косая черта

Вопрос:

Мне нужно взять первый элемент ARGV и сохранить его в качестве моего шаблона для поиска по файлам. Этот элемент содержит обратную косую черту / но когда я сохраняю его в переменной, обратная косая черта исчезает:

 my $template = $ARGV[0];
print $template;
  

выводит GGCC, в то время как первым аргументом является GGCC. Как я могу обойти это?

Ответ №1:

На самом деле это не perl проблема, это ваша оболочка.

Попробуйте ввести:

 echo fish
  

И вы увидите результат:

 fish
  

perl имеет ту же проблему — он даже не видит эту косую черту в первую очередь, потому что оболочка сначала обрабатывает строку для экранирования и кавычек.

Единственное, что вы можете изменить, это вызов. Добавьте дополнительную косую черту к вызову:

 echo \fish
  

И вы получите:

 fish
  

Комментарии:

1. или процитируйте это. echo 'fish'