For example, I don't like the output of "Parent Tree", but it's a necessary evil. The output tends to look better on real-life data than on contrieved examples though.
The "Dog Kennel" tests aren't inconsistent btw. Consider that  copies the glob while capture() doesn't. That means the glob inside  is an anonymous copy of *dogs, not the real thing.
Here's the output of your snippet:
[ [$L001, $L002, $L003], $L001: undef, $L002: undef, $L003: undef ]