Una string en Perl es una variable escalar y puede contener letras, números, caracteres especiales. La string puede consistir en una sola palabra, un grupo de palabras o un párrafo de varias líneas. Se requiere una string de varias líneas en un escenario en el que el usuario desea un párrafo completo o un grupo de párrafos como una string y, para ello, debe conservar los espacios y el salto de línea. La string de varias líneas se puede crear de varias maneras.
String multilínea usando comillas simples y dobles
El usuario puede crear una string de varias líneas usando comillas simples («») y también con comillas dobles («») . El uso de comillas dobles hace que las variables incrustadas en la string sean reemplazadas por su contenido, mientras que en comillas simples el nombre de las variables sigue siendo el mismo .
Ejemplo:
# Perl code to illustrate the multiline # string using single quotes and # double quotes # consider a string scalar $GeeksforGeeks = 'GFG'; # multiline string using double quotes $mline = "This is multiline string using double quotes on $GeeksforGeeks"; # displaying result print "$mline\n\n\n\n"; # multiline string using single quotes $multi_line = 'This is multiline string using single quotes on $GeeksforGeeks'; # displaying result print "$multi_line\n";
Producción:
This is multiline string using double quotes on GFG This is multiline string using single quotes on $GeeksforGeeks
String de varias líneas usando Here Document
Here Document es una forma alternativa para múltiples declaraciones de impresión. Un Here-Document también se puede utilizar para strings de varias líneas. Declara un delimitador al principio para saber hasta dónde debe ingresar la string. Un Here-Document comienza con ‘<<‘ seguido del delimitador elegido por el usuario. La string lee el código hasta que vuelve a aparecer el delimitador y todo el texto intermedio se toma como la string.
Ejemplo:
# Perl code to illustrate the multiline # string using Here-Document # consider a string scalar $GeeksforGeeks = 'GFG'; # defining multiline string using # ending delimiter without any quotes $deli = <<string_ending_delimiter; Multiline string using Here-Document on $GeeksforGeeks string_ending_delimiter # displaying result print "$deli\n\n"; # defining multiline string using # ending delimiter with double quotes $deli = <<"string_ending_delimiter"; Multiline string using Here-Document on $GeeksforGeeks string_ending_delimiter # displaying result print "$deli\n\n"; # defining multiline string using # ending delimiter with single quotes $deli = <<'string_ending_delimiter'; Multiline string using Here-Document on $GeeksforGeeks string_ending_delimiter # displaying result print "$deli\n\n";
Producción:
Multiline string using Here-Document on GFG Multiline string using Here-Document on GFG Multiline string using Here-Document on $GeeksforGeeks
Explicación: en el código anterior, si el delimitador se coloca entre comillas dobles, las variables incrustadas en la string se reemplazarán por su contenido, como la variable GeeksforGeeks reemplazada por GFG y esto se denomina Interpolating Here Document . Si el delimitador se coloca entre comillas simples, las variables incrustadas en la string no se reemplazarán por su contenido y esto se denomina Documento aquí sin interpolación . Recuerde que si el delimitador no se pone entre comillas, por defecto se consideran comillas dobles alrededor de eso.
Nota: Se recomienda usar el mismo delimitador al final de la string exactamente como estaba al principio, lo que significa que no debe haber espacios en blanco antes ni después del delimitador. De lo contrario, Perl no lo reconocerá y dará el error. En otras palabras, el usuario no puede sangrar la etiqueta final para que coincida con la sangría del resto de su código.
Ejemplo:
# Perl code to illustrate the error by # changing the ending delimiter # consider a string scalar $GeeksforGeeks = 'GFG'; # defining multiline string using # ending delimiter without any quotes $deli = <<string_ending_delimiter; Multiline string using Here-Document on $GeeksforGeeks string_ending_delimiter
Error de tiempo de ejecución:
No se puede encontrar el terminador de string «string_ending_delimiter» en ningún lugar antes de EOF en /home/1873b0a5dae105b4bfa82e3c79f156c5.pl línea 9.