MARC it your way: MARC.pm

MARC.pm (http://marcpm.sourceforge.net) is a piece of open source software (OSS) developed by librarians for librarians. In this article you will find a description of what exactly MARC.pm is, followed by a series of descriptive pieces written by librarians in the field who have used MARC.pm. Some of these descriptions contain program code, which may baffle those who are not already familiar with the Perl programming language, while other pieces explore some of the intricacies of the Machine Readable Cataloging (MARC) format that may be new to noncatalogers. If at any time you feel overwhelmed know that you are in good company, and keep in mind that the aim of this article is simply to show how a piece of OSS is being used in different library environments. ********** In short, MARC.pm is an open source Practical Extraction and Report Language (Perl) module for reading, manipulating, and writing USMARC data. As is the case with most short answers, this description glosses over several details that should be covered before going into any examples of how libraries are using MARC.pm. First of all, for those not already acquainted, Perl is an open source programming language created by Larry Wall in 1984. Perhaps the best description of Perl is found in the documentation that comes bundled along with Perl itself: Perl is a high-level programming language with an eclectic heritage written by Larry Wall and a cast of thousands. It derives from the ubiquitous C programming language and to a lesser extent from sed, awk, the Unix shell, and at least a dozen other tools and languages. Perl's process, file, and text manipulation facilities make it particularly well suited for tasks involving quick prototyping, system utilities, software tools, system management tasks, database access, graphical programming, networking, and World Wide Web programming. These strengths make it especially popular with system administrators and CGI script authors, but mathematicians, geneticists, journalists, and even managers also use Perl. Maybe you should, too. (1) Perl's facility with text processing, database access, and networking have also made it popular with librarians around the world, as more and more library services and information resources have been made available online. Perl is one of the jewels in the crown of open source software (OSS), and as such deserves the full attention of another article (or book) to detail its use in libraries. A Perl module is a set of related functions that are packaged together into a library file that has an extension of ".pm." A module provides reusable code that extends Perl's core functionality by giving it extra powers in a new field of expertise. For example, there are Perl modules for useful tasks such as logging into and interacting with an FTP server or querying a relational database; and for esoteric jobs such as converting dates from the Julian to the Mayan calendar or interpreting genetic data. Anyone can write a Perl module; in fact hundreds of people have and made their modules publicly available in the Comprehensive Perl Archive Network, or CPAN (www.cpan.org). CPAN is a true virtual library and treasure trove of useful software, which prevents programmers around the world from constantly recreating the wheel. It is made possible in part by the professional programmers who monitor the quality of software placed there, while ensuring that the archive's namespaces remain sensible and coherent. Most library professionals have some familiarity with the MARC data format that is used to encode bibliographic data. Catalogers in particular have detailed knowledge of the various fields that make up a MARC record, such as the 100 field for an author, the 245 field for a title, and the 650 for a subject heading. Figure 1 is a typical example of a single MARC record. Figure 1. Sample MARC Record in Interpreted Format 000 00897pam 2200277 a 4500 008 860317s1986 nyu b 001 0 eng 020 $a068806499X 050 00 $aP211$b. …