use strict; use warnings; use Data::Diver qw(Dive); my $inFile = < "Poo Bear", address => {virtual => {email => 'the.woods@erewhon.com'}}, movie => {role => "Bear"}, hoig => {boig => {loig => {shmoig => "doig"}}} }; open my $fIn, '<', \$inFile; for my $line (<$fIn>) { chomp $line; my @parts = split ',', $line; for my $part (@parts) { my @keys = split '-', $part; print "@keys: ", Dive($js, @keys), "\n"; } } #### name: Poo Bear address virtual email: the.woods@erewhon.com movie role: Bear hoig boig loig shmoig: doig