A lockfile-like table records the exact version selected for each dependency.

Lockfile Selection

lockfile_selection.pl
use strict;
use warnings;

my $module = ;
my %locked = (
    JSON => "4.10",
    DBI => "1.643",
);
my $version = $locked{$module} // "none";
my $status = $version eq "none" ? "unlocked" : "locked";

print "module=$module\n";
print "version=$version\n";
print "status=$status\n";
use strict;
use warnings;

my $module = ;
my %locked = (
    JSON => "4.10",
    DBI => "1.643",
);
my $version = $locked{$module} // "none";
my $status = $version eq "none" ? "unlocked" : "locked";

print "module=$module\n";
print "version=$version\n";
print "status=$status\n";
use strict;
use warnings;

my $module = ;
my %locked = (
    JSON => "4.10",
    DBI => "1.643",
);
my $version = $locked{$module} // "none";
my $status = $version eq "none" ? "unlocked" : "locked";

print "module=$module\n";
print "version=$version\n";
print "status=$status\n";
lockfile A lockfile records resolved versions so future installs can choose the same versions.