lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Fri, Mar 18, 2011 at 10:04 PM, mitchell <code@caladbolg.net> wrote:
> I want to iterate over the lines in a file, but break out if a certain
> condition is true. The documentation says the EOF is detected and the file
> is closed. If I break before the EOF is detected, is the file not closed? I
> don't want to leave open file references in my Lua state.
>
> for line in io.lines(filename) do
>  if condition then break end
>  ...
> end
>
> Thanks,
> mitchell
>
>

Yes, the file handle will still be open, at least until the file
object is garbage collected. There is no way for an iterator to detect
a broken loop and run cleanup code, so you will need to make sure the
handle is closed explicitly.

-Duncan