use strict; use warnings; use Data::Dumper; my $x = 4; my $y = 5; my $distance_mat; #################### for(my $i=1; $i<=$x; ++$i){ for(my $j=0; $j<$y; ++$j){ for(my $k=0; $k<$y; ++$k){ $distance_mat -> [$i][$j][$k] = rand 1; } } } ##############Start and end nodes have zero cost for(my $i=0; $i[1]}); ++$i){ $distance_mat -> [0][0][$i] = 0; } for(my $i=0; $i[-1]}); ++$i){ $distance_mat -> [-1][0][$i] = 0; } print Dumper $distance_mat;