... { { "true" "false" "true" } { "350" } } ... #### my $g=qr{ <[MATCH=element]>+ ( | | ) # \< ParamMap \. > \{ <[element]>* \} \< ParamString \. > \{ ( <[string]>* )? \} \< ParamBool \. > \{ # ( <[bool]>* )? \} <_qq> <[MATCH=literal]>* <_qq> [.'!\w_@\+\-\(\)\(\)\#{}\\\[\]]+ \" <_qq>\w*<_qq> <_qq><_qq> }xms; #### $VAR1={ 'HARDWARE'=>[ 'PhaseImages'=>[ true, false, true ] 'RoFOV'=>[ '230.0000000000000000', ] ] } ... #### $VAR1 = { 'protocol' => [ { 'name' => '"HARDWARE"', 'element' => [ { 'bool' => [ 'true', 'false', 'true' ], name' => '"MagnitudeImages"' }, { 'name' => '"ProtectedSize"', 'string' => [ [ '350' ] ] } ] } ] };