while() { push @full_data , [split] while (); for $arr_ref1 (@full_data) { for $arr_ref2(@full_data) { print OUT1 "$$arr_ref1[0]\t$$arr_ref1[1]\t$$arr_ref1[2]\t\t"; #print first three columns of input data into textfile $firstend = $firstinput + 2; $start2 = $firstend + 1; $secondend = $firstend + $secondinput; for my $index1 (3..$firstend)#column 4 to end of group 1 column { $ratio1 = sprintf( "%.4f%s", $$arr_ref2[$index1]/$$arr_ref1[$index1],"\t"); print OUT1 "$ratio1"; #$variable1 .= "$ratio1"; #attempting to store values in $variable1 } for my $index2 ($start2..$secondend)#start of group 2 column to end) { $ratio2 = sprintf( "%.4f%s", $$arr_ref2[$index2]/$$arr_ref1[$index2],"\t"); print OUT1 "$ratio2"; #$variable2 .= "$ratio2"; #attempting to store values in $variable1 } print OUT1 "\n"; #print next line after one loop } # finish one loop of one ID } #### A: ID B, C (time) C to E: Group 1 F to H: Group 2 # Calculation is taking the ratio of each row per column _Input DATA_ A B C D E F G H M11 0.1 10 24 56 77 98 72 M12 0.3 13 44 23 45 56 11 M13 0.4 54 23 11 25 67 91 #### _OUTPUT DATA_ A B C D E F G H I M11 0.1 10 1 1 1 1 1 M12 0.3 13 1.83 0.41 0.58 0.57 0.15 M13 0.4 54 0.95 0.19 0.32 0.68 1.26 . . . #### _OUTPUT DATA_ A B C D E F G H I J K M11 0.1 10 1 1 1 M11 0.1 10 1 1 1 1.83 0.95 M11 0.1 10 1 1 1 1.83 0.95 1 0.41 M11 0.1 10 1 1 1 1.83 0.95 1 0.41 . . .