CSV feldolgozáshoz használjuk a Text::CSV modult.

# cpanm Text::CSV_XS
# cpanm Text::CSV

Egy CSV teszteléshez:

name,val
A,3
B,2
C,5

Az alábbi kód megbirkózik mezőn belüli szeparátorral és sortöréssel is:

#!/usr/bin/env perl

use v5.018;
use utf8;
use strict;
use warnings;
use feature qw(unicode_strings);
use Text::CSV;

our $fn = $ARGV[0] or die "CSV filename not provided. Abort\n";

{
    my $csv = Text::CSV->new({
        strict    => 1,
        binary    => 1, # binary characters may be used in quoted fields
        auto_diag => 1,
        sep_char  => ','
    });
    my $sum = 0;

    open(my $fh, '<:encoding(utf8)', $fn) or die "Could not open file $fn: $!\n";
    my @header = $csv->header($fh);
    # hashref
#    while (my $row = $csv->getline_hr($fh)) {
#        $sum += $row->{'val'}; # figyelem, a hash index függ a csv tartalmától
#    }
    # arrayref (faster, more robust)
    while (my $row = $csv->getline($fh)) {
        $sum += $row->[1];
    }
    $csv->error_diag() unless $csv->eof;
    close $fh;

    print "$sum\n";
}