如何使用perl中的变量打印双引号语句

时间:2011-01-20 06:38:10

标签: perl

我需要一些perl帮助尝试使用变量打印这个带双引号的语句,并混合使用一些unix sed命令,这些命令似乎无法正常转义。

我对执行它不感兴趣,但只想将其打印到文件中。谢谢你的帮助。

print  MYOUTFILE "mysql -u foo -pbar --database $dbsrc -h $node --port 3306 -ss -e \"SELECT 'a','b','c' UNION SELECT col1, col2, col3 FROM $tblist limit 10\" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > myDump.csv\"\n"`;

特别是这部分给我一个问题:| sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > myDump.csv\"\n";

2 个答案:

答案 0 :(得分:4)

要减少逃避并发症,请在需要时使用qqq

print  MYOUTFILE qq{mysql -u foo -pbar --database $dbsrc -h $node --port 3306 -ss -e "SELECT 'a','b','c' UNION SELECT col1, col2, col3 FROM $tblist limit 10"}, q{ | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > myDump.csv}, "\n";

答案 1 :(得分:2)

使用qq{string}代替"string"创建一个不需要转义双引号字符的插值字符串。它使事情变得更容易管理。