use strict; use warnings; $| ++; sub parser { my $str = shift; $str =~ m/^\[(\d*),(.*?)\]$(?{print "1 = $1\n2 = $2\n";my $tmp = $2;parser($tmp) if ($tmp ne "[]")})/; } my $str = "[0,[1,[2,[3,[4,[5,[6,[7,[8,[9,[]]]]]]]]]]]"; parser $str; #### use threads; use strict; use warnings; $| ++; #open(STDERR, ">", "error.txt"); sub parser { my $str = shift; $str =~ m/^\[(\d*),(.*?)\]$(??{print "1 = $1\n2 = $2\n";my $tmp = $2;if ($tmp ne "[]") {my $t = threads->create("parser",$tmp); $t->join()}})/;} my $str = "[0,[1,[2,[3,[4,[5,[6,[7,[8,[9,[]]]]]]]]]]]"; parser $str; ####