Perl Language
Interpolazione in Perl
Ricerca…
Interpolazione di base
L'interpolazione significa che l'interprete Perl sostituirà i valori delle variabili per il loro nome e alcuni simboli (che sono impossibili o difficili da digitare direttamente) per sequenze speciali di caratteri (è anche noto come escaping). La distinzione più importante è tra virgolette singole e doppie: le virgolette interpolano la stringa racchiusa, ma le virgolette singole non lo fanno.
my $name = 'Paul';
my $age = 64;
print "My name is $name.\nI am $age.\n"; # My name is Paul.
# I am 64.
Ma:
print 'My name is $name.\nI am $age.\n'; # My name is $name.\nI am $age.\n
Puoi usare q{}
(con qualsiasi delimitatore) invece di virgolette singole e qq{}
invece di virgolette doppie. Ad esempio, q{I'm 64}
consente di utilizzare un apostrofo all'interno di una stringa non interpolata (altrimenti terminerebbe la stringa).
dichiarazioni:
print qq{$name said: "I'm $age".}; # Paul said: "I'm 64".
print "$name said: \"I'm $age\"." # Paul said: "I'm 64".
fai la stessa cosa, ma nella prima non devi sfuggire alle virgolette nella stringa.
Se il nome della variabile è in conflitto con il testo circostante, puoi usare la sintassi ${var}
per disambiguare:
my $decade = 80;
print "I like ${decade}s music!" # I like 80s music!
Cosa è interpolato
Perl interpola i nomi delle variabili:
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
Le matrici possono essere interpolate nel loro complesso, i loro elementi sono separati da spazi:
my @char = ('a', 'b', 'c');
print "My chars are @char\n"; # My chars are a b c
Perl non interpola gli hash nel loro insieme:
my %map = (a => 125, b => 1080, c => 11);
print "My map is %map\n"; # My map is %map
e chiamate di funzione (incluse costanti):
use constant {
PI => '3.1415926'
};
print "I like PI\n"; # I like PI
print "I like " . PI . "\n"; # I like 3.1415926
Perl interpola le sequenze di escape che iniziano con \
:
\t horizontal tab
\n newline
\r return
\f form feed
\b backspace
\a alarm (bell)
\e escape
L'interpolazione di \n
dipende dal sistema in cui il programma funziona: produrrà un carattere di nuova riga secondo le attuali convenzioni di sistema.
Perl non interpola \v
, che significa scheda verticale in C e altre lingue.
Il personaggio può essere indirizzato usando i loro codici:
\x{1d11e} 𝄞 by hexadecimal code
\o{350436} 𝄞 by octal code
\N{U+1d11e} 𝄞 by Unicode code point
o nomi Unicode:
\N{MUSICAL SYMBOL G CLEF}
Il carattere con i codici da 0x00
a 0xFF
nella codifica nativa può essere indirizzato in una forma più breve:
\x0a hexadecimal
\012 octal
Il carattere di controllo può essere indirizzato usando speciali sequenze di escape:
\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)
Le lettere maiuscole hanno lo stesso significato: "\cA" == "\ca"
.
L'interpretazione di tutte le sequenze di escape ad eccezione di \N{...}
può dipendere dalla piattaforma poiché utilizzano codici dipendenti dalla piattaforma e dalla codifica.