The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Build::Hopen::G::Runnable - parent class for runnable things in a hopen graph

SYNOPSIS

Anything with "run" inherits from this. TODO should this be a role?

ATTRIBUTES

need

Inputs this Runnable requires. A Build::Hopen::Util::NameSet, with the restriction that need may not contain regexes. ("Sorry, I can't run unless you give me every variable in the world that starts with Q." I don't think so!)

scope

If defined, a Build::Hopen::Scope that will have the final say on the data used by "run". This is the basis of the fine-grained override mechanism in hopen.

want

Inputs this Runnable accepts but does not require. A Build::Hopen::Util::NameSet, which may include regexes.

FUNCTIONS

run

Run the operation, whatever that means. Usage:

    my $hrOutputs = $op->run([$outer_scope])

$hrOutputs is guaranteed to be a new hash, not the same hash as $hrInputs.

The $outer_scope should include the inputs the caller wants to pass to the Runnable. The Runnable itself should use its own "scope", usually by setting $self->scope->outer($outer_scope) for the duration of the run() call.