Home Contact
Validate the HTML of this page

New Books List

Information for Developers


All of the New Books List scripts are written in Perl, an interpreted high-level programming language of many wondrous and varied uses. Customization of the programs beyond the configuration options, language modules, and SQL queries, assumes some Perl (or similar) programming experience.


This program extracts data out of the Voyager database and puts it into a flat file (newBooks.txt). The Perl DBI and DBD::Oracle modules provide an SQL interface.

The easiest thing to modify in this program would be the SQL queries. Just be sure to map the output into the proper format (see the newBooks.txt section).


This program lends itself to minor modifications of HTML output, but any structural changes to things like the sorting routines will be more of a challenge.


Developers should not limit themselves to the language modules (e.g. newBooks.English, newBooks.Finnish, et al.) that come with the New Books List. New and different language modules can easily be created by using the newBooks.Language file as a template.


This is the flat-file database that is output by the newBooks.pl script. Each line constitutes a record, and each record contains a set number of tab-delimited fields. Some fields may contain no data.

It is important for developers to understand that the structure of this file is the only thing that ties together newBooks.pl and newBooks.cgi. Any change to the upstream program (newBooks.pl) that impacts the structure of newBooks.txt, must be accommodated in the newBooks.cgi code that reads in and parses the file.

Datamap for Tomcat Version 7.0

Field Data Element Source
1 Bib ID bib_text.bib_id
2 ISBN bib_text.isbn
3 Bib Format bib_text.bib_format
4 Author bib_text.author
5 Title bib_text.title
6 Edition bib_text.edition
7 Imprint bib_text.imprint
8 Perm Location location.location_display_name
9 Temp Location location.location_display_name
10 Call Number (Display) mfhd_master.display_call_no
11 Call Number (Normalized) mfhd_master.normalized_call_no
12 Time Interval* (see SQL algorithm)
* The time interval data element has a value of either 1, 2, 3, or 4. This number corresponds to the week/month that item falls within: the the 1st, 2nd, 3rd, or 4th week/month.