3 votes

Perl : Ignorer les en-têtes avec Text::CSV_XS

Je veux ignorer les en-têtes dans mon fichier CSV lorsque j'utilise la bibliothèque Perl Text::CSV_XS.

Existe-t-il une meilleure façon de procéder que la suivante ?

use Text::CSV_XS;

open(my $fh, "<", "file.csv") or die "file.csv: $!"; 
my $csv = Text::CSV_XS->new();

#ignore header
my $row = $csv->getline($fh);

while ($row = $csv->getline($fh)) {  
  #do stuff with the rows... 
}

4voto

ikegami Points 133140

Le texte suivant serait légèrement meilleur :

# Skip header
$csv->getline($fh);

while (my $row = $csv->getline($fh)) {  
   ...
}

Il évite un mauvais cadrage, une réutilisation discutable des variables et une affectation inutile.


Vous pouvez également utiliser la méthode suivante :

$csv->column_names( $csv->getline($fh) );

while (my $row = $csv->getline($fh)) {  
   ...
}

Vous n'utilisez pas l'information supplémentaire que vous passez pour $csv Vous faites donc plus de travail que nécessaire, mais c'est auto-documenté.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X