for (0..3) { print "mapat $_ f: ", dumpf(mapat($_, \&f, $mats)), $/; } # mapat 0 f: f([[[1,2],[3,4]],[[5,6],[7,8]]]) # mapat 1 f: [f([[1,2],[3,4]]),f([[5,6],[7,8]])] # mapat 2 f: [[f([1,2]),f([3,4])],[f([5,6]),f([7,8])]] # mapat 3 f: [[[f(1),f(2)],[f(3),f(4)]],[[f(5),f(6)],[f(7),f(8)]]]