use strict;
use 5.010;
use lib 'dist/Module-CoreList/lib';

use List::MoreUtils qw(uniq);
use Module::CoreList;
use Text::Table;

my $old_ver = "5.010000";
my $new_ver = "5.011005";

my $old = $Module::CoreList::version{ $old_ver };
my $new = $Module::CoreList::version{ $new_ver };

my $table = Text::Table->new('perl', \' | ', $old_ver, \' | ', $new_ver);

for my $lib (uniq sort (keys %$old, keys %$new)) {
  my $old = exists $old->{ $lib } ? $old->{ $lib } // '(undef)' : '(absent)';
  my $new = exists $new->{ $lib } ? $new->{ $lib } // '(undef)' : '(absent)';
  
  next if $old eq $new;

  $table->add($lib, $old, $new);
}

print $table;
