Monday, January 23, 2012

Text::CSV_XS module example in perl

CSV
------

 Tudor,Vidor,10,Hapci
 Szundi,Morgo,7,Szende
 Kuka,Hofeherke,100,Kiralyno
 Boszorkany,Herceg,9,Meselo

   #!/usr/bin/perl
  use strict;
  use warnings;

  my $file = $ARGV[0];
  
  my $sum = 0;
  open(my $data, '<', $file) or die "Could not open '$file' $!\n";

  while (my $line = <$data>) {
    chomp $line;

    my @fields = split "," , $line;
    $sum += $fields[2];
  }
  print "$sum\n";



OR


  #!/usr/bin/perl
  use strict;
  use warnings;

  use Text::CSV_XS;
  my $csv = Text::CSV_XS->new({ sep_char => ',' });

  my $file = $ARGV[0];

  my $sum = 0;
  open(my $data, '<', $file) or die "Could not open '$file'\n";
  while (my $line = <$data>) {
    chomp $line;

    if ($csv->parse($line)) {

        my @fields = $csv->fields();
        $sum += $fields[2];

    } else {
        warn "Line could not be parsed: $line\n";
    }
  }
  print "$sum\n";

No comments: