in reply to Stuck in my final step of code using array of arrays

Sorting your array of arrays, based on your answers on previous questions, demonstrated under the perl debugger:
DB<2> @c = ([ PF12951, 421, 455 ], [ PF03797, 822, 1073 ], [ PF12951 +, 515, 547 ]); DB<3> x @c 0 ARRAY(0x80359d28) 0 'PF12951' 1 421 2 455 1 ARRAY(0x803601b8) 0 'PF03797' 1 822 2 1073 2 ARRAY(0x803603b0) 0 'PF12951' 1 515 2 547 DB<4> @d = sort {$a->[1] <=> $b->[1]} @c DB<5> x @d 0 ARRAY(0x80359d28) 0 'PF12951' 1 421 2 455 1 ARRAY(0x803603b0) 0 'PF12951' 1 515 2 547 2 ARRAY(0x803601b8) 0 'PF03797' 1 822 2 1073 DB<6>
Once the sub-arrays are sorted, it is quite easy to pick up the end of the previous element.