Когда вы используете \Q
, вы говорите ему заключать в кавычки (ставьте обратную косую черту перед) все символы, которые не соответствуют \w
. В результате вы получаете обратную косую черту каждый раз, когда в вашем коде есть обратная косая черта. например \a
создает звук колокольчика, но к вашей строке добавляется обратный слеш. Когда вы используете \Q
, он ведет себя так, пока не достигнете \E
или до конца строки.
Когда вы создаете $string1
, у вас фактически есть 3 отдельные строки, которые вы добавляете вместе, поэтому они оцениваются отдельно. В результате \Q
.
влияет только на первый из трех элементов.
Во втором примере \n\E
приводит к \\
в строке. Когда вы распечатываете это, это приводит к появлению обратной косой черты.
Надеюсь, что это имеет смысл.