in reply to SQL WHERE clauses with DBIx::Class, using NOT and IN

Since DBIx::Class uses SQL::Abstract, you should be able to get away with this:
search({ id => { 'not in' => [ 1, 2, 3 ] }, });
My version of SQL::Abstract turns that into WHERE ( id NOT IN ( ?, ?, ? ) ), which seems to be exactly what you need.