例如,我想在启动时存储 dbi 连接的数据,这样我就不必通过对象对其进行初始化,他们是否可以在同一个包中执行此操作?
通过我的对象初始化将是:
my $obj = foo->new;
my $dbh = $obj->connect('dbi', 'user', 'pw');
但我想在启动时将它存储到我可以使用的地方
my $obj = foo->new;
my $blah = $obj->selectall_arrayref(...);
package foo;
use strict;
use warnings;
__PACKAGE__->connect('dbi', 'user', 'pw');
sub new {
my $class = shift;
my $self = {};
bless ($self, $class);
return $self;
}
sub connect {
my $class = shift;
my $self = ref $class || $class;
return $self->(@_); # Is this possible?
}