#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11128406 use warnings; use List::Util qw( reduce min ); local $_ = <[0] <= $b->[0] ? $a : $b } $d[$r+1][$c], $d[$r+1][$c+1])->[1] ]; } } print "value $d[0][0][0] path $d[0][0][1]\n";