use strict; use warnings; use 5.010; use List::Util qw{ sum }; use Data::Dumper; open my $windowsFH, q{<}, \ < ) { my( $min, $max, $value ) = split; push @{ $values{ $_ } }, $value for $min .. $max; } close $windowsFH or die qq{close: < HEREDOC: $!\n}; print Data::Dumper ->Dumpxs( [ \ %values ], [ qw{ *values } ] ); open my $markersFH, q{<}, \ < ) { chomp; say qq{$_ - }, ( sum @{ $values{ $_ } } ) / @{ $values{ $_ } }; } close $markersFH or die qq{close: < HEREDOC: $!\n};