如何在Perl中为字符串添加双引号

时间:2011-10-04 16:35:05

标签: perl

我的代码如下:

$id = "PROD121213123";

我将它传递给一个函数并将其添加到它

"\"$wi_id\""

其中$ wi_id看起来像my $wi_id = $_

"\"$wi_id\""之后的值看起来像我在Eclipse调试器中检查的“PROD121213123”(使用EPIC)

我从Perl调用curl.exe,看起来这个“”在执行过程中被省略了。如何对字符串使用“”并仍使用CURL执行?

2 个答案:

答案 0 :(得分:1)

听起来你做的相当于

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

这是因为引号对“shell”有特殊意义。命令行解析在Windows中有点混乱(与Perl无关),因此您甚至可能无法将双引号传递给curl。我尝试使用system的多个arg版本。

答案 1 :(得分:-1)

您正在尝试将引号字符串传递给通过shell调用的命令。为了帮助你,你需要转义引号以隐藏shell:

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

HTH, 保罗