在工作中,我们喜欢将参数作为哈希引用传递给子程序:
my $manager = DatabaseManager->new({
'sHost' => 'my_host',
'sDatabase' => 'some_database'
});
对象本身有一个如下所示的 init 函数:
sub _init
{
my ($self, $phArgs) = @_;
$self->{_sHost} = $phArgs->{sHost};
$self->{_sDatabase} = $phArgs->{sDatabase};
}
有没有办法收拾这个?即使第一行可以更清楚,我认为这将是一个改进。就像是
sub _init
{
my ($self, ($host, $database) ) = @_;
$self->{_sHost} = $host;
$self->{_sDatabase} = $database;
}
那么子程序需要什么就很清楚了。有任何想法吗?