Perhaps there is something else going on, try running it from the command line rather than calling it from the browser. I'll be changing the interface to be all named parameters rather than positional parameters but here's what is happening currently:
sub run {
my( $self, $cfg, @query_params ) = @_;
my $liveGrid = $self->new( %$cfg );
my $db_table = $liveGrid->query_database(
@query_params
);
# ...
}
So it expects to be called like this:
DBIx::LiveGrid->run(
\%cfg, $dbh, $table, \@fields, \@where
);
The first parameter "$self" is "DBX::LiveGrid".