A long time ago I started using HTML::ReportWriter::PagingAndSorting to help generate paging and sorting links on web reports. I don't use the main "ReportWriter" module. It works OK, has some downsides to consider. This module has no automated tests. Since the time it was released, CGI.pm changed it's behavior of the url() method that this module uses, and this distribution had no regression tests to make sure that modules it depends on continue to behave the same. Also, PostgreSQL can now select a page of data along with the total results in one query instead of two for better performance, but this solution still uses the two query technique in all cases. Finally, the author has yet to respond submitted patches, the oldest submitted 5 years ago. In summary: it works, but I'd shop around further before using it in a new project.