use strict; use warnings; sub mean {...} my @genes = ( #'GeneName E1 E2 E3 E4', 'ATA1 12 44 45 33', 'OSA2 100 79 85 83', 'DUA5 66 65 64 67', 'AXANT 4 4 6 2', ); foreach (@genes) { my ($name, @values) = split; print $name, mean(@values); } #### use List::Util qw(sum); ... sub mean { return sum(@_)/@_ }