perl中打印的区别

时间:2015-03-31 03:09:22

标签: perl printing

愚蠢的问题,但对我来说,他们看起来是一样的,但我认为应该有所不同。这3种印花之间有任何已知的区别吗?

TYPE1

print qq~ <td>....</td>~

输入2

print qq|<table>....</table>|

输入3

print <<EOT
<table>...</table>
EOT

1 个答案:

答案 0 :(得分:1)

输入1和2,Quote and Quote-like Operators

  

虽然我们通常将引号视为文字值,但在Perl中它们充当运算符,提供各种插值和模式匹配功能。 Perl为这些行为提供了常规引号字符,但也提供了一种为其中任何一个选择引号字符的方法。在下表中,{}表示您选择的任何分隔符对

   Customary Generic     Meaning          Interpolates
        ''   q{}          Literal         no
        ""  qq{}          Literal         yes
        ``  qx{}          Command         yes*
            qw{}         Word list        no
        //   m{}       Pattern match      yes*
            qr{}          Pattern         yes*
             s{}{}      Substitution      yes*
            tr{}{}    Transliteration     no (but see below)
             y{}{}    Transliteration     no (but see below)
    <<EOF                 here-doc            yes*
* unless the delimiter is ''.

键入3. Here-doc

  

双引号表示文本将插值使用完全相同的规则与普通双引号字符串

   print <<EOF;
The price is $Price.
EOF
   print << "EOF"; # same as above
The price is $Price.
EOF