for(my $r=0;$r<@tmp_container;$r++){ for(my $s=0;$s<@{$tmp_container[$r]};$s++){ for(my $t=0;$t<@{$tmp_container[$r]->[$s]};$t++) { if(@{$tmp_container[$r-1]} > @{$tmp_container[$r]}){ unshift(@{$tmp_container[$r]}, $tmp_container->[$r-1]->[$s]->[$t]); } } } }