my $str='"fld":{xz.,"val":"x"},"fldA":{afd;ladf,"val":"valid y"},"fldB":{adsa;afda,"val":"invalid val x"}...'; my $fldNm="fldA"; if ( $str =~ /"$fldNm".*"val":"([^"]+)"/ ) { print "\n Val = $1 \n"; }