Many database-oriented extensions to Perl have been written. Basically, these use the usub mechanism (see the usub/ subdirectory) in the source distribution) to link in a database library, allowing embedded calls to Informix, Ingres, Interbase, Oracle and Sybase.
Here are the authors of the various extensions:
What Target DB Who -------- ----------- ---------------------------------------- ?Infoperl Informix Kurt Andersen (kurt@hpsdid.sdd.hp.com) Ingperl Ingres Tim Bunce (timbo@ig.co.uk) and Ted Lemon Interperl Interbase Buzz Moschetti (buzz@bear.com) Isqlperl Informix William Hails bill@tardis.co.uk Oraperl Oracle Kevin Stock (kstock@Auspex.com) Pgperl Postgres Igor Metz (metz@iam.unibe.ch) *Sqlperl Ingres Ted Lemon (mellon@ncd.com) Sybperl Sybase Michael Peppler (mpeppler@itf.ch) Uniperl Unify 5.0 Rick Wargo (rickers@coe.drexel.edu) ? Does this one still exist?
*Sqlperl appears to have been subsumed by Ingperl
Buzz Moschetti* has organized a project to create a higher level interface to allow you to write your queries in a database-independent fashion. If this type of project interests you, send mail to <perldb-interest-request@vix.com> and asked to be placed on the ``perldb-interest'' mailing lists.
Here's a bit of advertising from Buzz:
Perl is an interpreted language with powerful string, scalar, and array processing features developed by Larry Wall that ``nicely bridges the functionality gap between sh(1) and C.'' Since relational DB operations are typically textually oriented, perl is particularly well-suited to manage the data flows. The C source code, which is available free of charge and runs on many platforms, contains a user-defined function entry point that permits a developer to extend the basic function set of the language. The DBperl Group seeks to exploit this capability by creating a standardized set of perl function extensions (e.g. db_fetch(), db_attach()) based on the SQL model for manipulating a relational DB, thus providing a portable perl interface to a variety of popular RDMS engines including Sybase, Oracle, Ingres, Informix, and Interbase. In theory, any DB engine that implements a dynamic SQL interpreter in its HLI can be bolted onto the perl front end with predicatable results, although at this time backends exist only for the aforementioned five DB engines.
The official archive for DBperl extensions is ftp://ftp.demon.co.uk/pub/perl/db It's the home of the evolving DBperl API Specification. Here's an extract from the updated README there:
DBI/ The home of the DBI archive. To join the DBI mailing list send your request to perldb-interest-REQUEST@vix.com DBD/ Database Drivers for the DBI ... Oracle/ By Tim Bunce (not yet ready!) Ingres/ By Tim Bunce (not yet started!) mod/ Other Perl 5 Modules and Extensions ... Sybperl/ By Michael Peppler, mpeppler@itf.ch perl4/ Perl 4 extensions (using the usub C interface) oraperl/ ORACLE 6 & 7 By Kevin Stock, kstock@auspex.com sybperl/ SYBASE 4 By Michael Peppler, mpeppler@itf.ch ingperl/ INGRES By Tim Bunce timbo@ig.co.uk and Ted Lemon isqlperl/ INFORMIX By William Hails, bill@tardis.co.uk interperl/ INTERBASE By Buzz Moschetti, buzz@bear.com oraperl/ ORACLE 6 & 7 By Kevin Stock (sadly no longer on the net) sybperl/ SYBASE 4 By Michael Peppler, mpeppler@itf.ch ingperl/ INGRES By Tim Bunce timbo@ig.co.uk and Ted Lemon isqlperl/ INFORMIX By William Hails, bill@tardis.co.uk interperl/ INTERBASE By Buzz Moschetti, buzz@bear.com uniperl/ UNIFY 5.0 By Rick Wargo, rickers@coe.drexel.edu pgperl/ POSTGRES By Igor Metz, metz@iam.unibe.ch btreeperl/ NDBM perl extensions. By John Conover, john@johncon.com ctreeperl/ C-Tree perl extensions. By John Conover, john@johncon.com duaperl/ X.500 Directory User Agent. By Eric Douglas. scripts/ Perl and shell scripts rdb/ RDB is a perl RDBMS for ASCII files. By Walt Hobbs, hobbs@rand.org shql/ SHQL is an interactive SQL database engine. Written as a shell script, SHQL interprets SQL commands and manipulates flat files based on those commands. By Bruce Momjian, root@candle.uucp xbase/ Perl scripts for accessing xBase style files (dBase III) refinfo/ Reference information sqlsyntax/ Yacc and lex syntax and C source code for SQL1 and SQL2 from ftp.uu.net:/pub/uunet/published/oreilly/nutshell/yacclex, and a draft SQL3 syntax from Jeff Fried <jfried@informix.com>+ formats/ Details of file formats such as Lotus 1-2-3 .WK1There are also a number of non SQL database interfaces for perl available from ftp.demon.co.uk. These include:
Directory Target System Authors and notes --------- ------------- ------------------------------------------- btreeperl NDBM extension John Conover (john@johncon.com) ctreeperl CTree extension John Conover (john@johncon.com) duaperl X.500 DUA Eric Douglas rdb RDBMS Walt Hobbs (hobbs@rand.org) shql SQL Engine Bruce Momjian (root@candle.uucp)
Other resources at this site: