Cómo escribir comillas dobles " "

Resuelto
helmii Mensajes publicados 35 Estado Miembro -  
[Dal] Mensajes publicados 6122 Fecha de registro   Estado Colaborador Última intervención   -
Salut à tous, j'ai un tableau @array et je veux affecter la chaîne de caractères entre parenthèses (user "aaa") à $array[12]
voilà mon code $array[12]=" user "aaa" ";
Rien ne change pour $array[12] et c'est à cause des deux guillemets (" ") je pense parce que quand je les enlève de telle manière $array[12]=" user aaa "; le changement est effectué !! comment peut-on écrire les deux guillemets sans qu'ils soient considérés comme des délimiteurs de chaîne de caractères ?? Merci pour votre aide.

3 respuestas

[Dal] Mensajes publicados 6122 Fecha de registro   Estado Colaborador Última intervención   1 108
 
Hola helmii,

1.

Puedes hacer como se sugiere en las respuestas anteriores, escapando las comillas ("comillas dobles") contenidas dentro de tus comillas.

$array[12]=" user \"aaa\" "; 

2.

Otra forma de hacerlo, si tu contenido no necesita ser interpolado y no incluye apóstrofes, es simplemente usar el apóstrofe como delimitador de cadena:

$array[12]=' user "aaa" '; 

3.

Si necesitas interpolar el contenido, y te da pereza escapar las comillas, puedes usar qq:

$array[12]= qq( user "$username" ); 

(nota: "qq" es para "comillas dobles", también hay "q" para "comillas simples" que es equivalente al apóstrofe, para no interpolar)

4.

Finalmente, también está el heredoc, si necesitas poner texto con comillas, apóstrofes, saltos de línea,...

En no interpolado con apóstrofes alrededor del marcador que identifica el final del bloque:
$array[12] = <<'EOT'; tengo un array @array y quiero asignar la cadena de caracteres entre paréntesis (user "aaa") a $array[12] aquí está mi código $array[12]=" user "aaa" "; Nada cambia para $array[12] y es EOT ;

en versión interpolada, con comillas en su lugar, o sin nada:
$array[12] = <<EOT; Este usuario se llama $prenom, $nom. Tiene $age años. Vive en $adresse. EOT ;

EOT es un ejemplo, puedes poner lo que quieras. Por convención se pone en mayúsculas. El ; solo después del bloque es opcional, me gusta ponerlo para evitar la advertencia que podría teóricamente aparecer como se señaló al final de esta sección de Perldoc.

Fuentes para profundizar:

https://perldoc.perl.org/perlop#Quote-and-Quote-like-Operators
https://perldoc.perl.org/perlop#Quote-Like-Operators

Dal
1
Lapourax Mensajes publicados 2970 Fecha de registro   Estado Colaborador Última intervención   336
 
Tu debes utilizar la barra invertida
 echo " \" " "

La \ permite indicar al shell que el carácter no es un metacaracter

Así que el shell mostrará tu " como cualquier otro carácter =)

L@pourax
Si no lo logras a la primera, llámalo versión 1.0
0
blux Mensajes publicados 2032 Fecha de registro   Estado Moderador Última intervención   3 455
 
Hola,

hay que 'desespecializar' tu comilla doble precediéndola con una barra invertida (\), de esta manera: \"

A+ blux
 "Los idiotas se atreven a todo. Es incluso por eso que los reconocemos"
0