Term::TablePrint (its function print_table) prints a table or the selected columns of the table to STDOUT.
print_table provides a cursor which highlights the row on which it is located. The user can scroll through the table with the different cursor keys.
If the table has more rows than the terminal the table is divided up on as many pages as needed automatically. Also if the terminal is too narrow to print the table the columns are adjusted to the available width automatically.