in reply to Repeating an input prompt

If you really want to get rid of $flag, you could do something like this:

while (do_it($drinks[print_options(\@drinks) -1], \@positions, \@locat +ions)){}