Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^2: Recursively search nested hash/array structures

by mp (Deacon)
on Dec 09, 2004 at 21:02 UTC ( [id://413685]=note: print w/replies, xml ) Need Help??


in reply to Re: Recursively search nested hash/array structures
in thread Recursively search nested hash/array structures

Thank you. Data::Rmap was exactly what I needed. The example script below converts every value corresponding to a key of 'b' to an array unless it already is an array.
use strict; use warnings; use Data::Rmap qw(rmap_hash); use Data::Dumper; $Data::Dumper::Sortkeys = 1; $Data::Dumper::Indent = 1; my $data = { a => { b => 1, x => 3, }, b => 1, c => { d => [ { b => 3 }, { b => [5, 6, 7] }, { x => 3}, ], }, }; my $key = 'b'; my @to_fix = rmap_hash { exists($_->{$key}) && (ref($_->{$key}) ne "ARRAY") ? $_ : () } $data; for my $h(@to_fix) { $h->{$key} = [ $h->{$key} ]; } warn Dumper($data);
Output:
$VAR1 = { 'a' => { 'b' => [ 1 ], 'x' => 3 }, 'b' => [ 1 ], 'c' => { 'd' => [ { 'b' => [ 3 ] }, { 'b' => [ 5, 6, 7 ] }, { 'x' => 3 } ] } };

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://413685]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2024-03-29 11:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found