Main Navigation


Working with Databases in Perl

Learn Perl Now!
And get a job doing Perl.


There are many types of databases:

SQL Databases

The de-facto standard for working with SQL databases in Perl is DBI (short for Database Interface). It provides a unified way to perform SQL queries across many database backends: PostgreSQL, SQLite, MySQL (but see this page for some reasons why you may prefer a different system), Oracle, Firebird, and others.

Above DBI, people wrote some useful abstractions:

When working with databases make sure you avoid common pitfalls such as SQL injection vulnerabilities.

DBM Databases

XBase Databases

There seems to be an XBase module on CPAN . It seems to be pure-Perl, so it may be slow.

Distributed Databases ("No SQL", etc.)

Recently, to meet the growing demand for data of some web sites, some people have switched to using non-centralised, non-SQL based databases that use a cluster of servers to implement a distributed data storage. This has been dubbed "No SQL". You most likely would prefer to use an SQL-based solution, which should be easily able to handle the data in your scope, but here is a list of some bindings for distributed databases just for completeness sake.