Effectively that is a binary search, as you are excluding half of the unknowns at each pass. Even on very large source files, it zeros in on the errant line(s) pretty quickly. You can do the same thing with deliberate error too.
Enlil reminded me that the quickest way to "comment out" half of the code is to use a __DATA__ statement. Shove it in the middle to start then move it a quarter forward or back as appropriate.
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller