как добавить двойную кавычку в строку в Perl - PullRequest
0 голосов
/ 04 октября 2011

мой код выглядит следующим образом:

$id = "PROD121213123";

Я передаю это функции и добавляю в нее

"\"$wi_id\""

где $ wi_id выглядит как my $wi_id = $_

После "\"$wi_id\"" значение выглядит как «PROD121213123», которое я проверил в отладчике Eclipse (используя EPIC)

Я вызываю curl.exe из Perlпохоже, что это "" опущено во время выполнения.Как я могу иметь "" для строки и все еще выполнять с помощью CURL?

Ответы [ 2 ]

1 голос
/ 04 октября 2011

Похоже, вы делаете эквивалент

my $id = "\"PROD121213123\"";    # String <<"PROD121213123">>
system "curl.exe ... $id ...";   # curl sees <<PROD121213123>>

Это потому, что кавычки имеют особое значение для "оболочки". Синтаксический анализ командной строки в Windows - беспорядок (ничего общего с Perl), поэтому вы не сможете даже передать двойные кавычки в curl. Я бы попробовал использовать версию с несколькими аргументами system.

0 голосов
/ 04 октября 2011

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

my $id = q(\"PRD121212\");
system qq(curl.exe ... $id ...);

HTH, Пол

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...