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"; }