Ultime de la virgule dans la liste Perl

La liste d'éléments dans un langage de programmation Perl partagés avec l'aide de l'opérateur virgule ,. Voici un exemple le code qui crée un tableau dans lequel se trouve 3 éléments:

▶ Run
#!/usr/bin/perl

my @arr = ('one', 'two', 'three');

Perl, contrairement à, par exemple, JSON permet de spécifier une virgule à la fin de la liste. Ce code crée un exactement le même tableau comme dans l'exemple précédent:

▶ Run
#!/usr/bin/perl

my @arr = ('one', 'two', 'three',);

Ce tableau se compose de trois éléments. Alors qu'à la fin il y a une virgule n'a aucun effet. On supposer que la présence de la virgule à la fin de la liste ajoutera undef comme la dernière valeur, mais non, cela ne se produit pas. Si la virgule à la fin de la liste ou pas, cela n'affecte pas ce que Perl interprète cette liste.

Recommandation

Le langage de programmation Perl toujours — est-il dans la liste ultime virgule ou non, mais des programmes écrites non seulement pour les comprenait Perl, mais afin de comprendre les gens. Il ya donc la recommandation suivante, si elle à suivre, le code est un peu plus facile à lire et un peu plus facile à modifier.

La recommandation est la suivante:

  • si la liste est enregistré en ligne, l'ultime virgule ne doit pas être
  • si chaque élément de la liste enregistrée sur une ligne distincte, puis après un dernier élément doit être une virgule

De cette recommandation, il faut que

  • si en cours de travail, la liste change, plus tôt a été enregistré en une seule ligne, et est devenu enregistrée par la valeur dans la chaîne, il faut ajouter ultime de la virgule
  • et si des multiligne liste est une liste en une seule ligne de ce final il faut enlever la virgule

Voici un exemple de code qui est respecté cette recommandation:

▶ Run
#!/usr/bin/perl

my @arr1 = ('one', 'two', 'three');

my @arr2 = (
    'one',
    'two',
    'three',
);

my %h = (
    a => 1,
    b => 2,
);

Si dans la liste, chaque élément enregistré dans la chaîne n'est pas bien sûr de la virgule et le besoin d'ajouter un autre élément à la fin de la liste, dans le diff se compose d'un supprimée et les deux ajoutés:

diff --git a/script.pl b/script.pl
index 5634af0..eabe2f1 100644
--- a/script.pl
+++ b/script.pl
@@ -3,5 +3,6 @@
 my @arr = (
     'one',
     'two',
-    'three'
+    'three',
+    'four'
 );

Si la recommandation est respectée et à la fin de la liste ultime d'une virgule, puis le diff se compose d'une compréhensible ligne:

diff --git a/script.pl b/script.pl
index 8575677..82b3adf 100644
--- a/script.pl
+++ b/script.pl
@@ -4,4 +4,5 @@ my @arr = (
     'one',
     'two',
     'three',
+    'four',
 );

Autres articles