PSGI/Plack essentially allows you to write your code using any PSGI-supported framework (Catalyst, CGI-Application, Mojo, CGI.pm, Dancer, Squatting, Continuity, etc, etc) as you normally would, and then run it under any PSGI-supported web server or server module (Apache2+mod_psgi, Apache+mod_perl, nginx, perlbal, Danga::Socket, AnyEvent::HTTPD, FastCGI, SCGI, Starman, Twiggy, etc, etc). Starman and Twiggy are PSGI 'native' web servers using Pre-forking and AnyEvent asynchronous event loop respectively. PSGI also lets you add middleware between your web app and your web server to do stuff like session management, auth, proxying, debugging, tracing, etc.
DBIx::Class allows you to auto-generate your table classes from your schema, including relationships, if your database has appropriate FKs. You can then use those relationships in your code with join and prefetch to automatically SELECT JONed tables in one command sent to the DB Server, so its handy for databases with more than a couple of tables. DBIx::Class is also good if you already use SQL::Abstract as you can pass SQL::Abstract clauses to it.
Even though I'm a DBA originally and generally know all the various SQL incantations required, I usually let a full ORM like DBIx::Class or a thin wrapper over SQL like SQL::Abstract do the work for me, if only to reduce the number of multi-line SQL statements floating around my code.