in reply to Warnings not being thrown with DBI

It is the design decision for DBI module, to use Perl undef to represent SQL NULL. You need something to represent SQL NULL in Perl, and I do see undef as a reasonable choice for that matter.