Yes, probably "defined for ever". It is quite possible that your method just keeps returning a false but defined value (say zero or an empty string) even when that is no more piece of data to return.
Comment on Re: DBD::ODBC - Why do i get an "out of memory" exception?