Das ultimative Komma in Perl aufgeführt

Die Elemente in der Liste in der Programmiersprache Perl werden mit dem Operator Komma ,. Hier ist ein Beispiel Code, der das array erstellt in dem sich 3 Elemente:

▶ Run
#!/usr/bin/perl

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

Perl, im Gegensatz zu, zum Beispiel, JSON hiermit können Sie ein Komma am Ende der Liste. Dieser Code erstellt genau die gleiche array wie im letzten Beispiel:

▶ Run
#!/usr/bin/perl

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

Dieses array besteht aus drei Elementen. So dass am Ende ein Komma oder keine Wirkung. Man würde man annehmen, dass das Komma am Ende der Liste fügt undef als letzten Wert, aber Nein, das ist nicht passiert. Ob das Komma am Ende der Liste oder nicht — es hat keinen Einfluss wie Perl interpretiert diese Liste.

Empfehlung

Die Programmiersprache Perl immer noch — ob in der Liste die ultimative Komma oder nicht, aber Programme geschrieben nicht nur um Ihren Verstand Perl, sondern, um Sie zu verstehen Menschen. Daher gibt es folgende Empfehlung, wenn Sie Folgen, dann wird der Code ein wenig einfacher zu Lesen und ein wenig einfacher zu ändern.

Die Empfehlung ist folgende:

  • wenn die Liste in einen String geschrieben, dann das ultimative Komma sollte nicht sein
  • wenn jedes Element der Liste geschrieben in einer separaten Zeile, nach dem letzten Element muss ein Komma

Aus dieser Empfehlung folgt, dass

  • wenn die Liste der im Laufe der Arbeit verändert, früher wurde aufgenommen in einer einzigen Zeile, und wurde geschrieben durch den Wert in der Zeile, dann müssen Sie hinzufügen die ultimative Komma
  • und wenn der mehrzeiligen Liste erstellt die Liste in eine Zeile, das ultimative Komma muss Weg

Hier ist ein Beispiel Code, in dem diese Empfehlung eingehalten wird:

▶ Run
#!/usr/bin/perl

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

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

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

Falls in der Liste, jedes Element in einen String geschrieben Nein natürlich ein Komma und muss noch ein Element hinzufügen am Ende der Liste, dann in diff besteht aus einer gelöschten Zeile und zwei Hinzugefügt:

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

Wenn die Empfehlung eingehalten wird und am Ende einer solchen Liste gibt es das ultimative Komma, das diff besteht aus einem verständlichen Zeile:

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

Andere Artikel