#!/usr/bin/perl -T use warnings; use strict; use feature 'say'; use Scalar::Util qw/tainted/; use DBI; my $email = shift; my %data = ( email => $email ); die unless tainted($data{email}); my ($db_user,$db_pass) = ($ENV{USER}, 'barfoo'); my $dbh = DBI->connect( "DBI:mysql:database=testing;host=127.0.0.1", $db_user, $db_pass, { RaiseError=>1, AutoCommit=>1, TaintIn=>0 }); my ($test) = $dbh->selectrow_array( "SELECT idPerson FROM Person WHERE email = ?", undef, $data{email}); die "<$test>" unless $test==42; say "OK!";