var csv = require('Text::CSV').new( Hash(eol => "\n") ); # Open var csvfile = %f'data.csv'; var fh = csvfile.open_r; # Read var rows = []; var header = csv.getline(fh); while (var row = csv.getline(fh)) { rows.append(row.map{.to_num}); } # Process header.append('SUM'); rows.each { |row| row.append(row.sum) }; # Write var out = csvfile.open_w; [header, rows...].each { |row| csv.print(out, row); };