{"body":"multi sub postcircumfix:<{; }>(\\SELF, @indices, :$exists!) {\n    multi recurse-at-key(\\SELF, @indices) {\n        return @indices[0].map({ |recurse-at-key(SELF, ($_, |@indices[1 .. @indices.end])) }).List\n            if @indices[0] ~~ List;\n        return SELF.EXISTS-KEY(@indices[0]) if @indices == 1;\n        do if SELF.EXISTS-KEY(@indices[0]) {\n            recurse-at-key SELF{@indices[0]}, @indices[1 .. @indices.end]\n        } else {\n            my $num = @indices.map({ .elems }).reduce(&[*]);\n            return False if $num == 1;\n            (False xx $num).List\n        }\n    }\n\n    recurse-at-key(SELF, @indices)\n}\n\nuse Test;\n\nmy %a = 1 => {2 => {3 => 42}};\n\nis-deeply %a{1;2;3}:exists,       True;\n\nis-deeply %a{-99;2;3}:exists,     False;\nis-deeply %a{1;-99;3}:exists,     False;\nis-deeply %a{1;2;-99}:exists,     False;\n\nis-deeply %a{1,1;2;3}:exists,     (True, True);\nis-deeply %a{1;2,2;3}:exists,     (True, True);\nis-deeply %a{1;2;3,3}:exists,     (True, True);\n\nis-deeply %a{1,-99;2;3}:exists,   (True, False);\nis-deeply %a{1;2,-99;3}:exists,   (True, False);\nis-deeply %a{1;2;3,-99}:exists,   (True, False);\n\nis-deeply %a{1,1;2,2;3}:exists,   (True, True, True, True);\nis-deeply %a{1,1;2;3,3}:exists,   (True, True, True, True);\nis-deeply %a{1;2,2;3,3}:exists,   (True, True, True, True);\n\nis-deeply %a{1,1;2,2;3,3}:exists, (True, True, True, True, True, True, True, True);\n","name":"","extension":"txt","url":"https://www.irccloud.com/pastebin/aPL55Xzq","modified":1490799122,"id":"aPL55Xzq","size":1392,"lines":40,"own_paste":false,"theme":"","date":1490799122}