use strict; use warnings; use Data::Dump qw/pp/; my $data_str= do { local $/;}; $data_str=~ tr/{}/[]/; print $data_str; my $h; eval "\$h =$data_str"; pp $h; __DATA__ { alpha => { beta => { gamma => "theta", delta => "lambda", }, beta => { gamma => "zeta", }, }, } #### [ alpha => [ beta => [ gamma => "theta", delta => "lambda", ], beta => [ gamma => "zeta", ], ], ] [ "alpha", [ "beta", ["gamma", "theta", "delta", "lambda"], "beta", ["gamma", "zeta"], ], ] #### #YAML --- - alpha: - beta: - gamma: - theta - delta: - lambda - beta: - gamma: - zeta # PERL AoH³ [ { alpha => [ { beta => [{ gamma => ["theta"] }, { delta => ["lambda"] }] }, { beta => [{ gamma => ["zeta"] }] }, ], }, ]