$h{$1} = substr $str, 0, $2, '' while $str =~ s/^&?([^\[]+)\[(\d+)\]=//;