package Main; my $dbh = connect..... my $sth_cache; $sth_cache->{query1} = $dbh->prepare_cached('SELECT foo FROM bar WHERE foo = ?'); $sth_cache->{query2} = $dbh->prepare_cached('SELECT foo1 FROM bar1 WHERE foo1 = ?'); END{ $sth_cache->{$_}->finish for keys %{$sth_cache}; $dbh->disconnect if $dbh; } #blah sub widget { $sth_cache->{query1}->execute($bind_value_for_foo_WHERE_clause); $res = sth->fetchall_arrayref(); # blah }