Decision::Depends
                          =================

NAME

Decision::Depends - Perform actions based upon file dependencies

DESCRIPTION

     Decision::Depends is a module which simplifies the creation
     of procedures with intermediate steps which can be skipped
     if certain dependencies are met.  Think of it as a
     procedural version of make.

     Decision::Depends is useful when there are several steps in
     a process, each of which depends upon the last.  If the
     process is interrupted, or if it is to be redone with
     changes to parameters in later steps, and if intermediate
     results can be kept, then Decision::Depends can insure that
     only the minimal number of steps be redone.

     Each step must result in a tangible product (a file).  For
     complicated steps with many products the step's successful
     completion may be indicated by creating an empty file whose
     existance indicates completion.  This file (a "status" file
     in Decision::Depends terminology) can be automatically
     created if requested.

     Decision::Depends determines if the product for a given step
     is older than any files required to produce it.  It can also
     check whether the contents of a file have changed since the
     product was last created.  This is useful in the case where
     a configuration file must be created anew each time, but
     results in action only if changed since the product was last
     created. Finally, it can determine if a variable's value has
     changed since the product was last created.

DEPENDENCIES

        YAML
        Test::More
        Data::Compare
        Tie::IxHash
        Clone

INSTALLATION

        perl Makefile.PL
        make
        make test
        make install

CAVEATS

The tests poke at the innards. Be careful if you use them as examples that you don't use undocumented interfaces, as they may change (in particular, don't use $Decision::Depends::self).

COPYRIGHT

Copyright (C) 2008 Smithsonian Astrophysical Observatory

This file is part of Decision::Depends

Decision-Depends is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

AUTHOR

Diab Jerius ( djerius@cpan.org )