Quelle est la différence entre les simples et les doubles guillemets en Perl

Dans le langage de programmation Perl pour créer une ligne dans le code du programme, vous pouvez utiliser simples ' ou de guillemets ".

Entre eux il y a une différence. Guillemets simples fonctionnent seulement xscape séquence \\ et \', à l'intérieur des guillemets en plus de ces deux fonctionnent d'autres xscape de la séquence. Et seulement si vous utilisez des guillemets pour les noms de variables se déroulent dans des valeurs (se interpolation). De suite plus de détails.

Total

Et les guillemets simples et doubles dans un langage de programmation Perl sont utilisés pour décrire les lignes dans le code du programme (de ligne dans le texte du programme sont appelés "littéraux"). Voici un exemple:

▶ Run
#!/usr/bin/perl

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

Dans ce programme, nous avons créé deux variables et chacun d'eux est affecté d'une ligne. Dans cet exemple, il n'y a aucune différence entre les doubles et les guillemets simples lignes qui nous ont reçu dans le premier et dans le second cas, tout à fait les mêmes.

Antislash

Encore une chose commune dans l'utilisation de guillemets doubles et les guillemets — c'est ce besoin d'agir si besoin de la ligne était le symbole de la barre oblique inverse \. Si vous souhaitez créer une chaîne avec ce symbole, dans un littéral de chaîne besoin d'écrire deux barres obliques inverses \\. Dans la chaîne résultante de sera un antislash. Voici un exemple:

▶ Run
#!/usr/bin/perl

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

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

Ce programme affiche:

\
\

Les guillemets dans la barre de

La première différence entre les simples et les doubles guillemets réside dans le fait qu'il faut faire pour créer une chaîne de dans lequel il ya des guillemets simples ou doubles.

Avec l'aide de guillemets simples est très facile de créer une chaîne dans laquelle il y a un guillemet double: '"'. Et si besoin de faire une ligne dans lequel il ya une apostrophe, il faut le graver à l'aide de deux caractères: le slash \ et apostrophe. '\'' — voici un littéral de chaîne va créer une chaîne d'un seul caractère "apostrophe".

Dans le cas des guillemets — c'est le contraire. Pratique de créer une ligne avec simple guillemet "'", et pour accueillir dans la ligne de la double apostrophe besoin d'écrire devant elle, la barre oblique inverse (c'est encore appelé "examiner") "\"".

L'utilisation des caractères spéciaux

Lorsque vous utilisez des guillemets simples il y a seulement deux ensembles de caractères qui se transforment en un symbole. C'est, comme nous l'avons vu plus tôt, les deux barres obliques inverses \\ — ils se transforment en une barre oblique; et la barre oblique inverse et l'apostrophe \' — il se transforme en un symbole de "l'apostrophe".

Mais dans le cas de l'utilisation de guillemets, il y a plusieurs de ces ensemble de caractères (généralement appelée "xscape de la séquence"). La plus connue et la plus souvent utilisée est la combinaison de caractères \n. \nà les guillemets doubles se transforme en un symbole "saut de ligne". Lors de l'utilisation de guillemets les guillemets print 'ASDF\nQWERTY'; affiche ASDF\nQWERTY, et si vous utilisez des guillemets pour print "ASDF\nQWERTY"; s'affiche sur l'écran de deux lignes:

ASDF
QWERTY

L'autre est utilisée xscape séquence est \t, lors de l'utilisation de guillemets, cela se transforme dans le caractère de tabulation. Pas très souvent, mais encore utilisé \b, ce caractère spécial efface le caractère précédent (vous pouvez utiliser pour créer très simples d'animations dans la console). Il y a un certain nombre d'évasion des séquences, mais ils sont peu utilisés.

L'interpolation de variables

Si la chaîne créée à l'aide des guillemets pour écrire le nom de la variable, puis dans la barre s'affiche au lieu du nom la valeur de cette variable (si vous utilisez des guillemets simples dans la barre de nom).

Cette caractéristique de la langue est très souvent utilisé.

▶ Run
#!/usr/bin/perl

my $var = 'John';

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

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

Ce programme affiche:

Hello, $var
Hello, John

La chaîne de $str1 , nous avons créé avec l'aide de guillemets simples — et ligne contient exactement ce qui a été écrit dans une chaîne de littéral — 'Hello, $var'. Et la ligne de $str2 nom de la variable $var заменилось sur la valeur de cette variable.

Veuillez noter que se déroulent uniquement scalaires et des tableaux:

▶ 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";

Ce programme affiche le texte John one two %h &my_sub. Un scalaire $var et le tableau @arr se sont déroulés dans les et le hachage de la %h et saba my_sub — non.

Recommandation

Dans de nombreux cas, afin de créer des littéraux de chaîne en tout cas que utiliser et simples et les guillemets sont de travailler de la même manière. Cette recommandation — si une chaîne de lettre encore que utiliser — utilisez des guillemets simples.

Autres articles