阅读perl源我多次看到下一个构造:
printf qq[%s\n], getsomestring( $_ );
但通常写成
printf "%s\n", getsomestring( $_ );
问题:
- 这里有什么“好的做法”什么是正确的方法,如果是的话
- 什么时候推荐使用更长
qq[...]
的 vs 的"..."
- 或者它只是纯粹的 TIMTOWTDI?
perlop没有提到任何关于此的内容。
您可以将qq()
双引号用作替代方法,例如在字符串中有双引号时。例如:
"\"foo bar\""
写出来更好看
qq("foo bar")
在使用双引号的 windows cmd shell 中,我经常qq()
在需要插值时使用。例如:
perl -lwe "print qq($foo\n)"
操作符——像许多其他 perl 操作符一样,qq()
如s///
, qx()
——也很方便,因为它可以使用几乎任何字符作为分隔符:
qq[this works]
qq|as does this|
qq#or this#
当字符串中有许多不同的分隔符时,这很方便。例如:
qq!This is (not) "hard" to quote!
至于最佳实践,我会说使用更具可读性的东西。
我总是qq[...]
在字符串中有引号时使用,例如:
qq["here you are", he said]
如果没有,对我来说,使用""