use Data::Page; my $total_rows = $table->get_count_sql($sql_where_clause); # my $pager = Data::Page->new($total_rows, $G::CF{rows_per_page}, $current_page_num); # Now get only the needed chunk from the DB my @results = $table->get_range_sql($sql_where_clause, $pager->first, $pager->last); #### Select * From ( SELECT %s ,rownum R FROM (SELECT * FROM %s %s ) ) WHERE R BETWEEN %s AND %s