#!/usr/bin/perl -- use strict; use warnings; use Data::Dump; use Safe; Main( @ARGV ); exit( 0 ); sub Main { my $pp = q{ (S=(SN=ac2.bd) (I1=(IN=s%1)(NM=1) (HL=(HLD=kkk kjkjk)(ST=abdc)(HI=REM SSS)(H_M=9)(HL=72)(EB=0)(ER=0)(HI=E043-93A-DF0-0AB63E)(PE=aaa)(HN=DEE)(SS=NS)(SED=(APR=(PAD=kkk)(PN=9905)(HH=llkjk))(DD=(LLL=kkk)))) (ppp=1)(RAW=kkk)(DN=kkk)(RIN=ppp)) (PPP=1) (AA=LLI)) }; dd blahs2aoa( $pp ); } BEGIN { my %reps = ( '(' => '[ ', ')' => " ], ", '=' => ' "=" ,', '' => '', ); sub blahs2aoa { my( $j ) = @_; no warnings 'uninitialized'; $j =~ s{ ( [\(\)=] ) | ( \s+ ) | ( [^\(\)=]+ ) }{ $reps{$1} || $2 || "'$3'," }gsex; return Safe->new->reval( $j ); } } __END__ [ "S", "=", ["SN", "=", "ac2.bd"], [ "I1", "=", ["IN", "=", "s%1"], ["NM", "=", 1], [ "HL", "=", ["HLD", "=", "kkk kjkjk"], ["ST", "=", "abdc"], ["HI", "=", "REM SSS"], ["H_M", "=", 9], ["HL", "=", 72], ["EB", "=", 0], ["ER", "=", 0], ["HI", "=", "E043-93A-DF0-0AB63E"], ["PE", "=", "aaa"], ["HN", "=", "DEE"], ["SS", "=", "NS"], [ "SED", "=", [ "APR", "=", ["PAD", "=", "kkk"], ["PN", "=", 9905], ["HH", "=", "llkjk"], ], ["DD", "=", ["LLL", "=", "kkk"]], ], ], ["ppp", "=", 1], ["RAW", "=", "kkk"], ["DN", "=", "kkk"], ["RIN", "=", "ppp"], ], ["PPP", "=", 1], ["AA", "=", "LLI"], ]