in reply to Showing 10 lines at the time

1. Keeping track of where you are: You could use a cgi-parameter (I like to use one with the name 'lastId') and set links like
<a href="$script?lastId=$lastId-$ammountOfDataToDisplay>Last entries</ +a> <a href="$script?lastId=$lastId+$ammountOfDataToDisplay>Next entries</ +a>
(Btw: I just used $lastId-$ammountOfDataToDisplay to show the value; perhaps you have to calculate it before writing the links).

2. If you used a database instead of flatfiles, maybe the SQL-Command LIMIT might help you getting the correct slices of data, e.g.

SELECT * FROM table ORDER BY id DESC LIMIT $lastId, $ammountOfDataToDisplay
But maybe this will also work with DBI and DBD::CSV, I don't know.
Then just calculate the new $lastId (now better called $actualLastId) and check if you have to write the links, e.g. something like the following:
if ($lastId > 0) { my $newId = $lastId - $ammountOfDataToDisplay; print qq~<a href="$scriptname?lastId=$newId">Last</a>~; } if ($outputCount == $ammountOfDataToDisplay) { my $newId = $lastId + $ammountOfDataToDisplay; print qq~<a href="$scriptname?lastId=$newId">Next</a>~; }
I haven't tested these codes, but hope they will give you an idea on what to do.

Best regards,
perl -e "s>>*F>e=>y)\*martinF)stronat)=>print,print v8.8.8.32.11.32"