my $avgRatio = makeRatioAvg ( $ratio_ref );
my $final = makeFinal( $avgRatio );
dd( { avgRatio => $avgRatio }, { final => $final } );
sub makeRatioAvg {
print "makeRatioAvg \n";
my( $ratio ) = @_;
my $rows = $#$ratio;
my $columns = $#{ $ratio->[0] };
my $half_rows = $rows / 2;
my $halff = int( 1 + $half_rows ); ## eew
my @avg;
for my $tre ( 0 .. $columns ) {
for my $tri ( 0 .. $columns ) {
my $avg = 0;
for my $six ( 0 .. $half_rows ) {
my $val = $ratio->[$six][$tri][$tre];
$avg += $val;
print " + $val ";
}
$avg = $avg / $halff;
print " == $avg \n";
push @avg, $avg;
}
}
for my $tre ( 0 .. $columns ) {
for my $tri ( 0 .. $columns ) {
my $avg = 0;
for my $six ( $halff .. $rows ) {
my $val = $ratio->[$six][$tri][$tre];
$avg += $val;
print " + $val ";
}
#~ $avg = $avg / 3;
$avg = $avg / $halff;
print " == $avg \n";
push @avg, $avg;
}
}
return \@avg;
} ## end sub makeRatioAvg
sub makeFinal {
my( $avgRatio ) = @_;
my @first = @{$avgRatio}[ 0 .. ($#$avgRatio/2) ];
my @second = @{$avgRatio}[ (1+($#$avgRatio/2) ) .. $#$avgRatio ];
my @final = map { [ $first[$_] ] , [ $second[$_] ] } 0 .. $#first;
return \@final;
}
####
sub spankTheMonkey {
my( $infh ) = @_;
my @full_data;
my $header = readline $infh;
if( $header =~ /\d+/ ) { ## in case there is no header
push @full_data, [ split ' ', $header ];
}
push @full_data, [split] while( <$infh> );
return \@full_data;
} ## end sub spankTheMonkey
####
sub DoWorkOriginal {
my( $firstinput, $secondinput, $inFile, $outFile ) = @_;
use autodie qw/ open close /;
open my $curInfile, '<:raw', $inFile; ## or die by autodie
open my $OUT1, '>:raw', $outFile; ## or die by autodie
my $full_data = spankTheMonkey( $curInfile );
monkeyBusiness( $firstinput, $secondinput, $OUT1, $full_data );
close $curInfile;
close $OUT1;
} ## end sub DoWorkOriginal