package SQL_Helpers; my %sql_statements = ( SELECT_USER_INFO => q/SELECT userid, username, password FROM user_table WHERE userid=?/, UPDATE_USER_INFO => q/UPDATE user_table set password=? WHERE userid=?/, ...yada yada yada... ); sub sql { my ( $dbh, $sql, @data ) = @_; return undef if !exists( $sql_statements{ $sql } ); my $sth = $dbh->prepare( $sql_statements{ $sql } ) or die DBI::errstr; $sth->execute( @data ) or die DBI::errstr; return $sth; } ... package MyPackage; use SQL_Helpers qw/:all/; my $sth = sql( $dbh, UPDATE_USER_INFO, $password, $userid ); #### my $sth = $sql_helper->UPDATE_USER_INFO( $password, $userid ); #### Example SQL: UPDATE user_table SET password=?password WHERE userid=?userid Example call to sql: my $sth = $sql_helper->UPDATE_USER_DATA( { userid=>$userid, password=>$password } );