I love how he is building his own SQL string and then blaming Perl's DBI->quote for any vulnerabilities that arise. Anyone who writes SQL like that is writing bad code from the offset (regardless of the programming language nor it's DB/web frameworks). Parametrised queries and ORMs exist to prevent the kind of SQL injection attacks he's demonstrating and Perl's various DBD modules already support parametrised queries…
$sth = $dbh->prepare("SELECT document FROM table WHERE tag=? AND security_level=?");
$sth->execute(foo(), $user_level);
breaks as well, if foo() unexpectedly returns a list.