Perl Anfänger: DBI an Package übergeben

Beitrag lesen

11  bless($ref, $self);
12  $self->{dbh}=$dbh;

$ref ist dein Objekt, nicht self.

ok

wenn ich es so mache

01 package abc;
02
03 use DBI;
04 use strict;
05
06 sub new {
07  my $self=shift;
08  my $dbh=shift;
09  my $ref={};
10  $ref->{sessionLength}=48;
11  $ref->{dbh}=$dbh;
12  bless($ref, $self);
13  $ref;
14 }

52  $sth = $self->{db}->prepare('SELECT * FROM sessions') || die "cannot prepare query, errmsg = $DBI::errstr";

mit use strict;

Can't use string ("abc") as a HASH ref while "strict refs" in use at /x/y/z/abc.pm line 52.

ohne use strict;

Can't call method "prepare" on an undefined value at /x/y/z/abc.pm line 52.

Danke