in reply to Re^2: Help to understand the Data::TreeDumper Filters
in thread Help to understand the Data::TreeDumper Filters

but this is NOT working.

It's always a good idea to mention how exactly it doesn't work — that way you enhance your chances of getting a useful reply, because not everyone is willing to install non-standard modules (+ dependencies) just to figure out what you could have mentioned right away. And often, an educated guess can be made without having the module installed, as long you have all relevant info available.  But thanks for following up with self-contained sample code.

That said, I did install the module to confirm my suspicion that the not-working output is

The Simpsons `- name = Homer

Reason is that if you only let 'name' pass through the filter, DumpTree won't recurse into the other entries 'kids' and 'wife'... In other words, in this particular case, you could do:

return('HASH', undef, grep { !/^surname$/} keys %$s) ;

Output:

The Simpsons |- wife | `- name = Marge |- name = Homer `- kids |- 0 | `- name = Bart |- 1 | `- name = Lisa `- 2 `- name = Maggie

Replies are listed 'Best First'.
Re^4: Help to understand the Data::TreeDumper Filters
by Dirk80 (Pilgrim) on Apr 13, 2011 at 11:31 UTC

    Thank you a lot. Now I finally understand it. My problem was always that I did not take the container elements (in this example "wife" and "kids") into account. So DumpTree did not recurse.

    The same solution with positive logic would then be:

    return('HASH', undef, grep { /^name|kids|wife$/} keys %$s) ;

    And of course you are right. I should describe what exactly did not work if I use a non-standard module.