#! /usr/bin/perl use warnings; use strict; use List::Util qw{ sum }; use Data::Table; my $t = new Data::Table( [ ['a', 1000, 2000, 3000, 200,500], ['b', 2000, 1000, 1000, 700,800], ['c', 3000, 3000, 3000, 5,7], ], ['Name', 'value1', 'value2', 'value3', 'value4', 'value5'], 0); $t->addCol(undef, 'v1-3'); $t->colsMap(sub { $_->[-1] = sum(@$_[1 .. 3]) / 3 }); $t->addCol(undef, 'v4,5'); $t->colsMap(sub { $_->[-1] = sum(@$_[4, 5]) / 2 }); print $t->csv;