sub distance { ... do { return $1 + distance($_) if s/\(#:(\d+)\)/#/ } until ... ... }