$r = $1 ? \$$r->{$1} : \$$r->[$2] while $string =~ /(\w+)|\[(\d+)/g;