in reply to Database module question
There are many ways to do this... One way would be the OO approach, i.e. open the connection when constructing a DB object, and store $dbh as an attribute, which you can always access via the respective DB instance (and thus don't have to pass around). Then you don't even need Exporter and stuff... For example something like this:
package DB; use strict; use DBI; sub new { my $class = shift; my $dsn = shift; my $dbh = DBI->connect($dsn, "", "",{RaiseError=>1, AutoCommit=>1} +); return bless { _dbh => $dbh }, $class; } sub dbh { my $self = shift; return $self->{_dbh}; } sub createtb { my ($self, $form, $tabler) = @_; my $dbh = $self->dbh(); # ... } # --- Test.pl use strict; use DB; use SQL::Abstract; my $sql = SQL::Abstract->new(); my $db = DB->new("dbi:SQLite:dbname=test.db"); # ... $db->createtb($form2,$popsamp); # ...
|
|---|