================= 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 . AUTHOR Diab Jerius ( djerius@cpan.org )