Qual è la differenza tra singole e doppie virgolette in Perl

Nel linguaggio di programmazione Perl per creare una stringa nel codice di un programma è possibile utilizzare singole ' o doppi apici ".

Tra di loro c'è una differenza. Racchiusa tra virgolette funzionano solo la sequenza di escape \\ e \', tra virgolette oltre a questi due funzionano ancora altre sequenza di escape. E solo quando si utilizzano le virgolette i nomi delle variabili si svolge in valore (succede interpolazione). Di seguito i dettagli.

Totale

E virgolette singole e doppie in un linguaggio di programmazione Perl vengono utilizzati per descrivere le righe di codice del programma (riga nel testo del programma sono chiamati "letterali"). Ecco un esempio:

▶ Run
#!/usr/bin/perl

my $str1 = 'Hello, world!';
my $str2 = "Hello, world!";

In questo programma abbiamo creato due variabili e ciascuno di essi assegnato al comando. In questo esempio, non c'è alcuna differenza tra l'uso di doppi e le virgolette, le righe che abbiamo ricevuto nel primo e nel secondo caso assolutamente uguali.

Backslash

Ancora una cosa comune in uso singole e doppie virgolette — è come agire se necessario per barra di stato il carattere backslash \. Se si desidera creare una stringa con questo simbolo, in stringa letterale bisogno di scrivere due inverse slash \\. Nella stringa risultante sarà un backslash. Ecco un esempio:

▶ Run
#!/usr/bin/perl

my $str1 = '\\';
my $str2 = "\\";

print $str1, "\n";
print $str2, "\n";

Questo programma visualizza:

\
\

Le virgolette in una stringa

La prima differenza tra singole e doppie virgolette è quello che devi fare per creare una stringa di in cui ci sono virgolette singole o doppie.

Con l'aiuto di virgolette è molto facile creare una riga in cui c'è una virgoletta doppia: '"'. E se fare la riga in cui c'è una virgoletta singola, il suo bisogno di scrivere con l'aiuto di due caratteri: il slash \ e virgoletta. '\'' — ecco così un valore letterale stringa crea una stringa di un carattere "virgoletta singola".

Nel caso di doppie virgolette — tutto il contrario. Comodo creare una stringa con la virgoletta singola "'", e per mettere in una riga doppia virgoletta bisogno di scrivere prima di lei backslash (è anche chiamato "schermare") "\"".

L'uso di caratteri speciali

Quando si utilizzano le virgolette ci sono solo due insieme di caratteri che si trasformano in un simbolo. Questo, come abbiamo già visto prima, due inverse slash \\ — si trasformano in un backslash; e backslash e una virgoletta singola \' — si trasforma in un simbolo di "una virgoletta singola".

Ma quando si utilizzano le virgolette ci sono un paio di video insieme di caratteri (di solito li chiamano "escape sequence"). La più famosa e usata spesso è una combinazione di caratteri \n. \nin tra virgolette si trasforma in uno speciale carattere di avanzamento riga. Quando si utilizza un singolo le virgolette print 'ASDF\nQWERTY'; visualizza ASDF\nQWERTY, e quando si utilizzano le virgolette print "ASDF\nQWERTY"; apparirà sullo schermo due righe:

ASDF
QWERTY

L'altra utilizzata la sequenza di escape è \t, quando si utilizza tra virgolette si trasforma il carattere di tabulazione. Non molto spesso, ma ancora utilizzato \b, questo carattere speciale cancella il carattere precedente (è possibile utilizzare per creare semplici animazioni in console). Ci sono ancora un certo numero di escape sequenze, ma sono poco utilizzati.

L'interpolazione delle variabili

Se nella stringa creata utilizzando le virgolette registrare un nome di variabile, in linea invece di un nome apparirà il valore di questa variabile (quando si utilizzano le virgolette nella barra sarà il nome).

Questa caratteristica del linguaggio usato molto spesso.

▶ Run
#!/usr/bin/perl

my $var = 'John';

my $str1 = 'Hello, $var';
my $str2 = "Hello, $var";

print $str1, "\n";
print $str2, "\n";

Questo programma visualizza:

Hello, $var
Hello, John

Riga $str1 abbiamo creato con le virgolette nella barra contiene esattamente quello che è stato scritto all'interno di una stringa letterale — 'Hello, $var'. E nella barra di $str2 il nome della variabile $var è stato cambiato il valore di questa variabile.

Siete pregati di notare che svolgono solo scalari e matrici:

▶ Run
#!/usr/bin/perl

my $var = 'John';
my @arr = ('one', 'two');
my %h = (
    a => 1,
);

sub my_sub {
    return 12;
}

print "$var @arr %h &my_sub";

Questo programma visualizzerà il testo John one two %h &my_sub. Scalare $var e la matrice @arr concentrati in valore, e hash %h e saba my_sub — no.

Raccomandazione

In molti casi, per creare stringhe letterali comunque che utilizzare — e singole e tra virgolette funzionano allo stesso modo. Raccomandazione di questo — se per stringa lettera comunque che utilizzare — quindi utilizzare le virgolette singole.

Altri articoli