in reply to Module error

$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 ]) );