Perl FAQ 1.20: What is dbperl and where can I get it?

Perl FAQ 1.20

What is dbperl and where can I get it?

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 ([email protected])
Ingperl         Ingres          Tim Bunce ([email protected]) and Ted Lemon
Interperl       Interbase       Buzz Moschetti ([email protected])
Isqlperl        Informix        William Hails [email protected]
Oraperl         Oracle          Kevin Stock ([email protected])
Pgperl          Postgres        Igor Metz ([email protected])
*Sqlperl        Ingres          Ted Lemon ([email protected])
Sybperl         Sybase          Michael Peppler ([email protected])
Uniperl         Unify 5.0       Rick Wargo ([email protected])

    ? 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 <[email protected]> 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 [email protected]

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, [email protected]

perl4/         Perl 4 extensions (using the usub C interface)

   oraperl/   ORACLE 6 & 7  By Kevin Stock, [email protected]
   sybperl/   SYBASE 4      By Michael Peppler, [email protected]
   ingperl/   INGRES        By Tim Bunce [email protected] and Ted Lemon
   isqlperl/  INFORMIX      By William Hails, [email protected]
   interperl/ INTERBASE     By Buzz Moschetti, [email protected]
   oraperl/   ORACLE 6 & 7  By Kevin Stock (sadly no longer on the net)
   sybperl/   SYBASE 4      By Michael Peppler, [email protected]
   ingperl/   INGRES        By Tim Bunce [email protected] and Ted Lemon
   isqlperl/  INFORMIX      By William Hails, [email protected]
   interperl/ INTERBASE     By Buzz Moschetti, [email protected]
   uniperl/   UNIFY 5.0     By Rick Wargo, [email protected]
   pgperl/    POSTGRES      By Igor Metz, [email protected]

   btreeperl/ NDBM perl extensions.   By John Conover, [email protected]
   ctreeperl/ C-Tree perl extensions. By John Conover, [email protected]
   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,
		[email protected]
   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, [email protected]
   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 <[email protected]>+
   formats/   Details of file formats such as Lotus 1-2-3 .WK1

There 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 ([email protected])
ctreeperl   CTree extension John Conover ([email protected])
duaperl     X.500 DUA       Eric Douglas
rdb         RDBMS           Walt Hobbs ([email protected])
shql        SQL Engine      Bruce Momjian ([email protected])


Other resources at this site: