DBIx::SimpleQuery is designed for anyone who wants to run specific SQL commands against a database with as little surrounding structure as possible. It exports two functions, query and qs (quote-string), which allow you to include SQL in your code without needing to deal with database handlers, DSNs, and the like. qs() escapes a string and surrounds it with single quotes, so that it can be safely embedded in a query. Whenever possible, it uses the appropriate DBD module to do this. query() runs one or more queries against a database, and returns a value or a structure that can be evaluated in a number of ways, depending on your need. Example 1: use DBIx::SimpleQuery; sub get_name { my $user_id = qs(shift()); return query "SELECT name FROM users WHERE user_id = $user_id"; } print get_name("mo'connor") . "\n"; Example 2: use DBIx::SimpleQuery; foreach my $name (query "SELECT name FROM users ORDER BY name") { print $name . "\n"; } Example 3: use DBIx::SimpleQuery; foreach my $row (query "SELECT user_id, name FROM users") { print $row->{"user_id"} . "\t" . $row->{"name"} . "\n"; } Database connection information can be set using environment variables, through a DBIx::SimpleQuery::setDefaults() call, or through arguments to new or query. If a particular web application will always be using the same database connection, they can be set in apache/conf/httpd.conf, for instance.