package Foo; my $dbh; sub init_foo { my( %script_config )= @_; # Read config file ... # Connect to database $dbh ||= $config{ dbh } || connect_to_foo_database( %script_config ); # Set up cache ... };