Plain Old Documentation of FilmXML

Table of Contents


FilmXML – A Relational Database for Film Archives


This document refers to version 3.0.0 of FilmXML, released on 19 December 2011.

Updates and other material of interest for the long-term users have been published on a dedicated companion Website.


FilmXML helps film archivists and conservators to manage their audio-visual collections.


Copy the Perl module in the /cgi-bin/ directory of the Apache Web server. Put also a Perl script like the following in your /cgi-bin/ directory and give it a name like

#!/usr/bin/perl -w

use strict;
use FilmXML;


You can use also the mod_perl directory, e.g. /perl-bin/

Current Use

Invoke the Perl script with your browser by typing:


All other pages are generated by the module.


Database Installer

A database installer is provided. It generates all tables needed by this module.

To invoke the installer, run the Perl script in your browser with the follow address:


Look out: All eventually old tables are destroyed with all data stored in its.

Database Backup Utility

Data export and data import utilities are provided.

To invoke the export tool, type in your browser:


To invoke the import tool, type in your browser:


The importance of regular backups in successful operation cannot be stressed enough. Without an usable backup, a single power outage can destroy months or years of work. However, with a properly planned backup schedule, you can recover from almost any catastrophe in a very short time.

Required Software

Database Management System

MySQL is a freely available database management system that is easy to use and administer, and that has good performance. Any recent version should be suitable.


A Quick Update on 1st September 2013

I do not longer suggest MySQL. Please use instead MariaDB, “an enhanced, drop-in replacement for MySQL.”


Web Server

Apache is a freely available, extensible, high-performance Web server. It also happens to be more popular than any other. Any recent version should be suitable.


Programming Language

Perl is a freely available programming and scripting language. It was the predominant one on the Web. Any recent version should be suitable.


You also need the Perl modules DBI and DBD::mysql. Any recent version should be suitable.


Optional Software

An Additional Intergration Tool

mod_perl is an Apache module, not a Perl module. It makes it possible to embed the Perl interpreter into Apache so that Perl can be executed directly as part of the Web server rather than a process external to it. This increases performance by eliminating the expense of starting up an additional process each time the server needs to run a Perl script.


  • Paul DuBois: MySQL and Perl for the Web, New Riders, Indianapolis IN 2002
    Companion Website:
  • Paul DuBois: MySQL. Fourth Edition, Addison-Wesley, Boston MA 2008
    Companion Website:
  • Alligator Descartes and Tim Bunce: Programming the Perl DBI, O’Reilly & Associates, Sebastopol CA 2000
  • Joseph N Hall with Randal L Schwarz: Effective Perl Programming. Writing Better Programs with Perl, Addison-Wesley, Boston MA 1998

Error Messages

“Can’t connect to MySQL server XXX.”
Verify that the MySQL server is running.
Verify that the local parameters are set correctly.
“Can’t open pipe to sendmail: XXX.”
Verify that the sendmail server is running.
Verify that the path to sendmail is set correctly.
“Request to receive too much data: NNN bytes.”
The maximum size per request is 64 KB (= 65535 bytes).
“Oops! Unexpected Error.”
Should never occurs… please report unexpected errors to the author. Thanks!


Version 3.0 (2011)

This maintenance release addresses a request from long-term users: it offers a modern HTML5 interface to the MySQL database. Incidentally the FilmXML format is now EN 15907 compilant, and management of file-based elements has been added.

Version 2.0 (2003–2008)

Preservation management added. Data in the FilmXML format, a Dublin Core compliant XML application. A XHTML 1.0 Strict interface to the MySQL database. Module rewritten in object-oriented Perl.

Version 1.2 (2000–2002)

Stock management added. HTML 4.0 then HTML 4.0.1 interface to the MySQL database. Now needs frames (I am so unhappy for this decision) and CSS. Uses one Perl module.

Version 1.1 (1996–2000)

Technical reports of copies added. An HTML 3.2 full Braille terminal ready interface to a MySQL database. Uses a set of Perl scripts.

Version 1.0 (1993–1996)

First public release. A home-made relational database system that operates on plain text files using a Perl script to manipulate data. Access with HTML interfaces, from its beginning until the first standard HTML 2.0.

Version 0.1 (1987–1993)

Copies description added. The data-sets are now SGML compliant. A HyperCard interface on Macintosh.

Version 0.0 (1983–1987)

The first all home-made solution: a command-line interface, programmed using an expanded Modula-2 version, to manipulate a flat-file database with filmographic records.


Reto Kromer



The intent of this License is to state the conditions under which the Perl package FilmXML may be copied and distributed.


  1. “FilmXML” refers to this package, including source code, binary executables, images and scripts, which are distributed by Reto Kromer.
  2. “You” is you, if you are thinking about copying or distributing FilmXML.


  1. You may use FilmXML for commercial or non-commercial purposes without charge.
  2. You may make and give away verbatim copies of FilmXML without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers.
  3. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain. A package modified in such a way shall still be covered by the terms of this license.
  4. You may not distribute copies of FilmXML, or packages derived from FilmXML, to others where FilmXML is bundled with a commercial product without specific prior written permission from Reto Kromer.
  5. FilmXML and Reto Kromer’s name may not be used to endorse or promote packages derived from FilmXML without specific prior written permission from Reto Kromer.
  6. FilmXML is provided “as is” without warranty or support of any kind.
  7. Exclusively Swiss law applies.


Copyright © 1983–2008 and 2011 by Reto Kromer