my $x = [some number]; my $y = [some number]; my $distance_mat; #################### for(my $i=1; $i<=$x; ++$i){ for(my $j=0; $j<$y; ++$j){ for(my $k=0; $k<$y; ++$j){ $distance_mat -> [$i][$j][$k] = rand 1; } } } ##############Start and end nodes have zero cost for(my $i=0; $i [0][0][$i] = 0; } for(my $i=0; $i [-1][0][$i] = 0; } ####################################### #call the recursive min_dist subroutine my $last = scalar ( @{$distance_mat} ); my @minimum_path = &min_dist (\$distance_mat,$last); ## I want @minumum_path array to store the best path for each $i level as a pointer or index. sub min_dist { #I dont know how to program this recursive subroutine #My incorrect attempt looks like this my $k = $_[1]; my @array = @{ $_[0]->[$k] }; foreach( @array ){ $_ += min_dist( $_[0],$_[1]-1 ); } my $return=min( min_dist($_[0],$_[1]-1)+ ###I cannot figure out how to write this statement return $return; } sub min { #pass array of values my @array = sort { $a <=> $b } @_; return $array[0]; }