$$database_handle = DBI->connect(( map { my $s="database_$_"; exists $arguments{$_} ? $arguments{$_} : $caller->$s() } (qw(data_source_name username password)) ), {Taint=>$arguments{taint}||$caller->database_taint} ) or die "Could not connect to the database: $DBI::errstr" unless defined $$database_handle;