2013-05-04 29 views
4

閱讀perl的來源,我看到很多次的未來建設:使用引號樣運營商或報價在Perl中的printf

printf qq[%s\n], getsomestring($_); 

通常它寫成

printf "%s\n", getsomestring($_); 

問題:

  • 在這裏是什麼「好習慣」什麼是正確的方法,如果是的話
  • 何時推薦使用較長的qq[...]而不是"..."
  • 或者它只是純粹的TIMTOWTDI?

perlop沒有提到這方面的任何內容。

+1

我喜歡把'」 ...... 「'''''...''和'\'... \''作爲'qq」...「','q'...」和「qx」的快捷方式... \''。 – 2013-05-06 17:48:37

回答

6

您可以使用qq()作爲替代的雙引號方法,例如在字符串中有雙引號時。例如:寫的時候

qq("foo bar") 

當運行cmd shell窗口,它使用雙引號,我經常使用qq()當我需要插

"\"foo bar\"" 

看起來更好。例如:

perl -lwe "print qq($foo\n)" 

qq()運營商 - 像其他許多perl的運營商如s///qx() - 也方便,因爲你證明,因爲它可以對任何字符作爲分隔符它只是使用:

qq[this works] 
qq|as does this| 
qq#or this# 

當字符串中有許多不同的分隔符時,這很方便。例如:

qq!This is (not) "hard" to quote! 

至於最佳做法,我會說使用任何更可讀的。

2

我總是用qq[...]當有字符串引號,例如:

qq["here you are", he said] 

如果沒有,對我來說是更具可讀性使用""