Philip Rhoades wrote in post #1084734: > I have an existing script that looks like: > > lots of code > . > . > . > if .. > some lines of code > if .. > some lines of code > if .. > some lines of code > if .. > some lines of code > if .. > some lines of code > etc > > This makes it difficult to see the overall logic stick it in a method: def mymethod return unless ... some lines of code return unless ... some lines of code end lots of code . . mymethod But if you must keep it within the same scope (lots of local variables as you say, that you don't want to pass as arguments), then throw/catch is another option. lots of code . . catch(:done) do throw :done unless ... some lines of code throw :done unless ... some lines of code end -- Posted via http://www.ruby-forum.com/.