Perl Language
Interpolación en Perl
Buscar..
Interpolación básica
Interpolación significa que el intérprete de Perl sustituirá los valores de las variables por su nombre y algunos símbolos (que son imposibles o difíciles de escribir directamente) por secuencias especiales de caracteres (también se conoce como escape). La distinción más importante es entre comillas simples y dobles: las comillas dobles interpolan la cadena encerrada, pero las comillas simples no.
my $name = 'Paul';
my $age = 64;
print "My name is $name.\nI am $age.\n"; # My name is Paul.
# I am 64.
Pero:
print 'My name is $name.\nI am $age.\n'; # My name is $name.\nI am $age.\n
Puede usar q{}
(con cualquier delimitador) en lugar de comillas simples y qq{}
lugar de comillas dobles. Por ejemplo, q{I'm 64}
permite usar un apóstrofe dentro de una cadena no interpolada (de lo contrario terminaría la cadena).
Declaraciones:
print qq{$name said: "I'm $age".}; # Paul said: "I'm 64".
print "$name said: \"I'm $age\"." # Paul said: "I'm 64".
haga lo mismo, pero en el primero no necesita escaparse de comillas dobles dentro de la cadena.
Si el nombre de su variable coincide con el texto que lo rodea, puede usar la sintaxis ${var}
para desambiguar:
my $decade = 80;
print "I like ${decade}s music!" # I like 80s music!
Lo que se interpola
Perl interpola nombres de variables:
my $name = 'Paul';
print "Hello, $name!\n"; # Hello, Paul!
my @char = ('a', 'b', 'c');
print "$char[1]\n"; # b
my %map = (a => 125, b => 1080, c => 11);
print "$map{a}\n"; # 125
Las matrices pueden interpolarse como un todo, sus elementos están separados por espacios:
my @char = ('a', 'b', 'c');
print "My chars are @char\n"; # My chars are a b c
Perl no interpola hashes como un todo:
my %map = (a => 125, b => 1080, c => 11);
print "My map is %map\n"; # My map is %map
y llamadas a funciones (incluidas las constantes):
use constant {
PI => '3.1415926'
};
print "I like PI\n"; # I like PI
print "I like " . PI . "\n"; # I like 3.1415926
Perl interpola secuencias de escape que comienzan con \
:
\t horizontal tab
\n newline
\r return
\f form feed
\b backspace
\a alarm (bell)
\e escape
La interpolación de \n
depende del sistema en el que funciona el programa: producirá uno o más caracteres de nueva línea de acuerdo con las convenciones actuales del sistema.
Perl no interpola \v
, lo que significa una pestaña vertical en C y otros idiomas.
El personaje puede ser dirigido utilizando sus códigos:
\x{1d11e} 𝄞 by hexadecimal code
\o{350436} 𝄞 by octal code
\N{U+1d11e} 𝄞 by Unicode code point
o nombres de Unicode:
\N{MUSICAL SYMBOL G CLEF}
Los caracteres con códigos de 0x00
a 0xFF
en la codificación nativa se pueden abordar de una forma más corta:
\x0a hexadecimal
\012 octal
El carácter de control puede dirigirse utilizando secuencias de escape especiales:
\c@ chr(0)
\ca chr(1)
\cb chr(2)
...
\cz chr(26)
\c[ chr(27)
\c\ chr(28) # Cannot be used at the end of a string
# since backslash will interpolate the terminating quote
\c] chr(29)
\c^ chr(30)
\c_ chr(31)
\c? chr(127)
Las letras mayúsculas tienen el mismo significado: "\cA" == "\ca"
.
La interpretación de todas las secuencias de escape excepto para \N{...}
puede depender de la plataforma, ya que utilizan códigos dependientes de la plataforma y la codificación.