The other messages come from the
if line in
sub create_table ($) {
my($table_name) = $_;
if (my $table_name eq /Doncaster_Deaths_1975_onwards_slim_D/){
it's a wierd onstruction: you declare a local variable (unitialised) and compare it to the result of matching $_ against Doncaster_etc.
You probably meant to compare the argument of create_table to the string "Doncaster...etc...". Please note that the construction /regex/ is a shorthand for m/regex/ that conares the value of $_ to the regular expression. Look at perldoc perlre for more information.
Try something like:
sub create_table ($) {
my($table_name) = $_;
if ($table_name eq "Doncaster_Deaths_1975_onwards_slim_D"){
and the last two messages should disappear.