return &?SUB() if $only_when and not $only_when(@next);