#!/usr/bin/env perl use Modern::Perl; sub sum { my $t = shift; return $t unless @_; return $t + sum( @_); } my %k; while(){ chomp; my @w = split; next unless @w == 6; push @{$k{$w[3]}}, abs($w[4]-$w[5])/1000; } for (keys %k){ my $avg = sum(@{$k{$_}})/@{$k{$_}}; say "$_ $avg" if $avg > 0.02; } __DATA__ chr1 15865 15915 cg13869341 908 913 chr1 18827 18877 cg14008030 688 776 chr1 29407 29457 cg12045430 43 70 chr1 29407 29457 cg12045430 43 88 chr1 29407 29457 cg12045430 43 16 chr1 29425 29475 cg20826792 57 70 chr1 29425 29475 cg20826792 57 88 chr1 29425 29475 cg20826792 57 16 chr1 29435 29485 cg00381604 33 70 chr1 29435 29485 cg00381604 33 88 chr1 29435 29485 cg00381604 33 16 chr1 68849 68899 cg20253340 560 593 chr1 69591 69641 cg21870274 791 809 chr1 91550 91600 cg03130891 55 84