			  =================
			  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 )

