2015-03-31 2 views
2

глупый вопрос, но для меня они кажутся одинаковыми, но я думаю, что должна быть разница. Есть ли известная разница между этими тремя типами отпечатков?разница между отпечатками в perl

типа1

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

тип 2

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

тип 3

print <<EOT 
<table>...</table> 
EOT 
+0

Престол [цитата, как операторы] (http://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators) в документ Perl. Вы также можете «man perlop». – pynexj

ответ

1

типа 1 и 2, Quote and Quote-like Operators

Хотя мы обычно думаем о кавычках как о буквальных значениях, в Perl они функционируют как операторы, предоставляя различные возможности интерполяции и сопоставления шаблонов. Perl предоставляет обычные символы кавычек для этих поведений, но также предоставляет вам возможность выбрать свой кавычек для любого из них. В следующей таблице a {} представляет любую пару разделителей вы выбираете.

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 
+0

хороший пост помог многим спасибо –

Смежные вопросы