This is the first non-beta release of Db::Ctree, a module to access Faircom's
Ctree database from Perl 5.

I created this module because I wanted to use Perl to generate reports from
data stored in a Ctree database.  The bulk of the code at our site is written
in C using the Faircom C library, so I didn't need to create files
and resource records.

I still don't create them, but I do transaction, non-transaction and even batch
changes.

I have even used Perl to access the IOPERF function to monitor the server.

This library is not mean to replace Faircom's development license. That license is still required legally (I think... I'm not a lawyer, nor play one on TV),
morally and without a doubt documentation wise.  If you can use this
module without that documentation, that's pretty impressive.

In order to do the port, I took the function list and parameters from the
quick reference list and converted the data types.  I needed to remove a few
functions that dealt with some file structures, but most of the routines
are available.  I have not tested each one, but have yet to find one that
didn't work from perl.

All low level and most ISAM routines seem to work fine.  Functions that need
a C structure are not currently supported.  I'm still trying to figure out
how I want to implement them.  Even though they're not supported, I have
gotten some of them to work, you just use PACK to manually build a SCALER with
the structure.

If you use the ISAM routines, you need to either have a C program create
resource records so you can use OpenFileWithResource or open it with a
parameter file.  My Method access routines use the OpenFileWithResource
function.

If your files have DODA information stored in them (again, by a C program),
a Method is available to split a record into a hash!!

As examples, I've included the following utilities that I use all
the time (They'll probably need some modifications for other sites.)

       ctdump - dumps a table (splits those with DODAs)
       ctload - loads a table with data in the ctdump output format
       ctmod  - allows SUBST changes to a table


Install Instructions:
    This module should build similar to most Perl extensions...
       NOTE: If perl was not built on this system, you may have problems.
             The perl installer stores info about the installation.
             If you copy the binary to a new system, the previous assumptions
             may not be true!!!  Build a new perl on each system...
             it's not hard.

             Step 1.  Edit Makefile.PL and put in your Ctree library path
             Step 1.  perl Makefile.PL   # builds makefile
             Step 2.  make               # builds module
             Step 3.  make test          # tests module
             Step 4.  make install       # installs module for use
             Step 5.  make clean         # clean up directory

       Windows Note
            I *HAVE* gotten this version to build with Perl 5.6! ( Both the
            source distribution and ActivePerl binaries!)  The only change
            I needed to make was to remove the following from the CCLFLAGS
            line in Makefile ( after step 1 )
                   -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS

            For those without compilers, I've created a ZIP with all the
            files in the tree. Unzip WIN-SITE.ZIP and move the tree to your
            Perl Site directory.



If you give this module a shot, please drop me an email so I can let you know
of new versions or just get a warm fuzzy!


Robert Eden
CommTech Corporation
[email protected]          (comments and suggestions always welcome!)

# Copyright 1998,2000 Robert Eden
# All rights reserved.
#
# Automatic licensing for this software is available.  This software
# can be copied and used under the terms of the GNU Public License,
# version 1 or (at your option) any later version, or under the
# terms of the Artistic license.  Both of these can be found with
# the Perl distribution, which this software is intended to augment.
#
# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.