---
name: "Rose::DB::Object::Iterator"
section: "3pm"
platform: "linux"
package: "librose-db-object-perl"
version: "1:0.820-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Rose::DB::Object::Iterator"
---

# Rose::DB::Object::Iterator(3pm)

Iterate over a series of Rose::DB::Objects.

## NAME

Rose::DB::Object::Iterator - Iterate over a series of Rose::DB::Objects.

## SYNOPSIS

```
    $iterator = Rose::DB::Object::Manager->get_objects_iterator(...);
    while($object = $iterator->next)
    {
      # do stuff with $object...
      if(...) # bail out early
      {
        $iterator->finish;
        last;
      }
    }
    if($iterator->error)
    {
      print "There was an error: ", $iterator->error;
    }
    else
    {
      print "Total: ", $iterator->total;
    }
```

## DESCRIPTION

Rose::DB::Object::Iterator is an iterator object that traverses a database query, returning Rose::DB::Object-derived objects for each row.  Rose::DB::Object::Iterator objects are created by calls to the get\_objects\_iterator method of Rose::DB::Object::Manager or one of its subclasses.

## OBJECT METHODS

- **error**

  Returns the text message associated with the last error, or false if there was no error.

- **finish**

  Prematurely stop the iteration (i.e., before iterating over all of the available objects).

- **next**

  Return the next Rose::DB::Object-derived object.  Returns false (but defined) if there are no more objects to iterate over, or undef if there was an error.

- **total**

  Returns the total number of objects iterated over so far.

## AUTHOR

John C. Siracusa (siracusa@gmail.com)

## LICENSE

Copyright (c) 2010 by John C. Siracusa.  All rights reserved.  This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
