Det sidste komma i Perl, listen

Elementerne på listen i programmeringssproget Perl er adskilt med operatøren komma ,. Her er et eksempel den kode, der skaber array, som er 3 elementer:

▶ Run
#!/usr/bin/perl

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

Perl, i modsætning til, for eksempel, JSON giver dig mulighed for at angive et komma i slutningen af listen. Denne kode opretter et den samme række som i det foregående eksempel:

▶ Run
#!/usr/bin/perl

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

Denne opstilling består af tre elementer. Det faktum, at der i slutningen er der et decimaltegn har ingen effekt. Du vil foreslå, at tilstedeværelsen af et komma i slutningen af listen tilføj undef som den sidste værdi, men nej, dette sker ikke. Hvis der er et komma i slutningen af den liste eller ej — det påvirker ikke, hvordan Perl interpreterpath denne liste.

Anbefaling

Programmeringssproget Perl alligevel — er der i listen det sidste komma eller ej, men programmet skrevet ikke kun at forstå, Perl, men for at blive forstået af mennesker. Der er derfor følgende henstilling, hvis du følger det, koden bliver lidt lettere at læse og en smule nemmere at ændre.

Anbefaling følgende:

  • hvis listen er skrevet til en streng, det sidste komma skal ikke
  • hvis hvert element på listen er skrevet i en separat linje, efter det sidste element skal være et komma

Denne anbefaling følger, at

  • hvis der i processen over ændringer, der bruges til at være skrevet på en linje, og var optaget af værdien i strengen, så er du nødt til at tilføje en trailing comma
  • og hvis en multiline liste opretter en liste i en linie, det sidste komma er nødvendigt at fjerne

Her er et eksempel på en kode, som var i overensstemmelse med denne anbefaling:

▶ Run
#!/usr/bin/perl

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

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

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

Hvis listen, er hvert element, der er optaget i den linje, der er selvfølgelig komma, og du er nødt til at tilføje endnu et element i slutningen af listen, og derefter ob vil bestå af en ekstern linje og to tilføjede:

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'
 );

Hvis henstillingen overholdes, og i slutningen af denne liste er det sidste komma, diff består af en klar online:

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',
 );

Andre artikler