Dependency policy keeps a project clear about which modules are required and which are optional.

Dependency Policy

dependency_policy.pl
use strict;
use warnings;

my $module = ;
my %required = (
    "JSON::PP" => 1,
    "DBI"      => 0,
    "Path::Tiny" => 0,
);
my $role = $required{$module} ? "required" : "optional";
my $install_group = $required{$module} ? "runtime" : "feature";

print "module=$module\n";
print "role=$role\n";
print "install_group=$install_group\n";
use strict;
use warnings;

my $module = ;
my %required = (
    "JSON::PP" => 1,
    "DBI"      => 0,
    "Path::Tiny" => 0,
);
my $role = $required{$module} ? "required" : "optional";
my $install_group = $required{$module} ? "runtime" : "feature";

print "module=$module\n";
print "role=$role\n";
print "install_group=$install_group\n";
use strict;
use warnings;

my $module = ;
my %required = (
    "JSON::PP" => 1,
    "DBI"      => 0,
    "Path::Tiny" => 0,
);
my $role = $required{$module} ? "required" : "optional";
my $install_group = $required{$module} ? "runtime" : "feature";

print "module=$module\n";
print "role=$role\n";
print "install_group=$install_group\n";
dependency-policy Classifying dependencies helps installation and maintenance decisions stay predictable.