Final vírgula em Perl lista

Os itens na lista, na linguagem de programação Perl são separados através do uso do operador vírgula ,. Aqui está um exemplo de o código que cria uma matriz que abriga 3 elementos:

▶ Run
#!/usr/bin/perl

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

Perl, ao contrário de, por exemplo, JSON permite especificar uma vírgula no final da lista. Este código cria exatamente a mesma matriz como no passado, a exemplo de:

▶ Run
#!/usr/bin/perl

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

Esta matriz é constituída por três elementos. O que, no final, há uma vírgula em nada afeta. Pode gostaria de sugerir que a presença do ponto e vírgula no final da lista de adicionará undef como o valor da última, mas não, isso não acontece. Se a vírgula no final de uma lista ou não — isso não afeta o Perl interpreta esta lista.

Recomendação

A linguagem de programação Perl ainda — a lista final de uma vírgula ou não, mas programas não são escritos apenas para que entendeu Perl, mas para serem compreendidos por pessoas. Portanto, a seguinte recomendação, se lhe seguir, o código se torna um pouco mais fácil de ler e é um pouco mais fácil de modificar.

A recomendação é a seguinte:

  • se a lista gravado em linha, o final, a vírgula não deve ser
  • se cada elemento da lista é gravado em uma única linha, então, após o último item deve ser uma vírgula

A partir dessa recomendação será que

  • se no processo de trabalho, a lista muda, antes foi gravado em uma única linha, e tornou-se gravado por um valor em uma linha, então você precisa adicionar um final vírgula
  • e se a partir de várias linhas de uma lista é criada uma lista em uma linha, o final de uma vírgula você precisa limpar

Aqui está um exemplo de código que seja respeitada esta recomendação:

▶ Run
#!/usr/bin/perl

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

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

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

Se na lista, cada elemento do qual gravado em uma seqüência de caracteres não é claro vírgula e você precisa adicionar um item no fim da lista, o diff será composto de uma linha remoto e dois adicionados:

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

Se a mesma recomendação foi observado no final dessa lista tem o melhor vírgula, diff é composto por uma compreensível comando:

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

Outros artigos