NAME
    Class::DBI::Pager - Pager utility for Class::DBI
SYNOPSIS
      package CD;
      use base qw(Class::DBI);
      __PACKAGE__->set_db(...);
      use Class::DBI::Pager;        # just use it
      # then, in client code!
      package main;
      use CD;
      my $pager = CD->pager(20, 1);     # ($items_per_page, $current_page)
      my @disks = $pager->retrieve_all;
DESCRIPTION
    Class::DBI::Pager is a plugin for Class::DBI, which glues Data::Page
    with Class::DBI. This module reduces your work a lot, for example when
    you have to do something like:
      * retrieve objects from a database
      * display objects with 20 items per page
    In addition, your work will be reduced more, when you use
    Template-Toolkit as your templating engine. See the section on "EXAMPLE"
    for details.
EXAMPLE
      # Controller: (MVC's C)
      my $query    = CGI->new;
      my $template = Template->new;
      my $pager    = Film->pager(20, $query->param('page') || 1);
      my $movies   = $pager->retrieve_all;
      $template->process($input, {
          movies => $movies,
          pager  => $pager,
      });
      # View: (MVC's V)
      Matched [% pager.total_entries %] items.
      [% WHILE (movie = movies.next) %]
      Title: [% movie.title | html %]
      [% END %]
      ### navigation like: [1] [2] [3]
      [% FOREACH num = [pager.first_page .. pager.last_page] %]
      [% IF num == pager.current_page %][[% num %]]
      [% ELSE %][[% num %]][% END %]
      [% END %]
      ### navigation like: prev 20 | next 20
      [% IF pager.previous_page %]
      
      prev [% pager.entries_per_page %] |
      [% END %]
      [% IF pager.next_page %]
      
      next [% pager.entries_per_page %]
      [% END %]
NOTE / TODO
    This modules internally retrieves itertors, then creates "Data::Page"
    object for paging utility. Using SQL clauses "LIMIT" and/or "OFFSET"
    with "DBIx::Pager" might be more memory efficient.
AUTHOR
    Tatsuhiko Miyagawa 
    Original idea by Tomohiro Ikebe 
    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.
SEE ALSO
    the Class::DBI manpage, the Data::Page manpage