12345678910
use strict;use warnings;$_ = '[1, [2, 3, 4, [5, 6]]]';my @a;sub e{my($r)=@_;{s/^\]//&&last;s/^\[//&&e($r->[@$r]=[])||s/^, //||s/^(\d+)//&&push@$r,$1and redo}}e\@a;use Data::Dumper;print (Dumper(\@a));