$mod->create("table", "string", "column"); # not work
my $table = shift(); # picks up "table"
$dbh->do("CREATE TABLE $table ...
At the very least, some databases object to using reserved words for table and column names, so don't use a table name of 'table'. And elsewhere we see why you might not know that ...
{ PrintError => 0, RaiseError => 0, AutoCommit => 1 }
At the very least, add calls to Data::Dumper so you can see what your object really holds after the call to new():
use Data::Dumper;
my $mod = new WIDX; # ok...it works... maybe...
print Data::Dumper->Dump([ $mod ], qw([ *mod ]) );