I posted "an experienced perl programmer", but I know there are cases where a lot of experienced perl programmers would probably do a double take. I try to code mainly for clarity, but that does not mean I stay away from "complex" techniques just because someone reading it might not know the ins and outs.
I definitely don't hesitate to use closures generating closures that get combined into another closure (for instance) if that's the "best" way to solve the problem. I would hate to solve that kind of problem using only "easy to understand" primitives.
What I mean to say is: some times, problems can only be easily solved (and understood) using relatively "obscure" techniques. If understanding the resulting code relies on the viewer knowing the technique, then that's probably still better than using "simple" techniques in a convoluted way which no-one will be able to understand.