Las barras diagonales inversas siempre influyen en el carácter que les sigue, cuando están entrecomilladas dobles, pero cuando el entrecomillado es simple, las barras diagonales inversas solo influyen en los casos de que el siguiente carácter sea una comilla simple y otra barra diagonal.
Lo dice en
perlop:
Using text Syntax Highlighting
Operadores de entrecomillado
q/CADENA/
'CADENA'
Una cadena de caracteres literal, con un simple entrecomillado.
Una barra diagonal inversa representa una barra diagonal inversa a menos que esté seguida
por el delimitador u otra barra diagonal inversa, en cuyo caso el delimitador o la barra
diagonal inversa son interpolados.
$foo = q!Yo dije, "Tú dijiste, 'Ella dijo.'"!;
$bar = q('Así es.');
$baz = '\n'; # una cadena de dos caracteres
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Es decir: en un entrecomillado simple, si aparece una barra diagonal inversa, siempre será una barra diagonal inversa,
salvo cuando esté seguida del delimitar (comilla simple), o de otra barra diagonal inversa. En esos dos casos, se interpola el significado de la barra diagonal inversa.
En el siguiente ejemplo, he tenido que poner una doble barra diagonal inversa al final, para evitar que solo una de ellas "escapara" el significado de la última comilla simple:
Using perl Syntax Highlighting
my $string = 'C:\ruta\al\estilo\msDOS\\';
print "[$string]\n"; # [C:\ruta\al\estilo\msDOS\]
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Cuando se trata de imprimir textos que contienen comillas, es bueno recordar que existen los operadores q() (equivale a las comillas simples) y qq() (que equivale a las dobles). Así, el texto
"Hola", dijo Juan. "Has comido hoy" yo lo pondría como
Using perl Syntax Highlighting
print '"Hola", dijo Juan. "Has comido hoy"', "\n"; # entrecomillado simple: toda la cadena es constante
print q("Hola", dijo Juan. "Has comido hoy"), "\n"; # lo mismo, usando q()
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Si te fijas, a tu ejemplo de
print '\"Hola,\" dijo Juan. \"Has comido hoy\"' , "\n";Le sobran todas las barras diagonales invertidas