#!/usr/bin/perl use strict; use warnings; my $usr_str = "{depTar}{name}"; my @keys = $usr_str =~ m/\{(.*?)\}/g; my $xml = { 'depTar' => { 'name' => 'c_p20', 'loc' => 'srvr1' }}; my $href = $xml; for my $i (0 .. $#keys) { $href = $href->{$keys[$i]}; }; print $href;