I'm having trouble trying to do a case-sensitive query using Perl to access an sqlite3 DB. My situation involves artist names, most of which begin with an upper-case letter, but others begin with a lower case letter. For example 'Dead Can Dance' and 'dZihan & Kamien'. I have a web page that offers a group of clickable buttons containing the first letter of an artists's name. This helps in organizing and finding an artist. The page renders correctly - I have a 'D' button and a 'd' button. But when clicked, both give me ALL artists beginning with EITHER letter. The sqlite DB does not seem to be making a case-sensitive search. Some research has lead me to 'PRAGMA case_sensitive_like = 1;'. This does work in the CLI, but how do I implement it in Perl? I've tried <code> $dbh=DBI->connect("dbi:SQLite:$dbname","","",{RaiseError=>1,PrintError=>1,sqlite_unicode=>1,case_sensitive_like=>1}); </code> and my query: <code> $sth=$dbh->prepare(qq{select artists.name,artists.artistid,cds.genre from artists,cds where artists.artistid = cds.artistid and name like ? group by name,artists.artistid,cds.genre order by artists.name;}) or die "Can't prepare statement: $DBI::errstr\n"; $sth->execute('$ArtistLetter%') or die "Can't execute statement: $DBI::errstr\n"; warn $DBI::errstr if $DBI::err; while (@records=$sth->fetchrow_array()) { . . . } $sth->finish(); </code> When my script runs (Apache on a local server (High Sierra), the address bar in Safari shows the letter searched as 'D' or 'd', but the result is 0 for both. Can anyone explain how to implement this (or any) PRAGMA correctly in Perl please?