1. Yes you can certainly use ODBC, if you have the ODBC driver for the informix database, and also you need to install
DBD::ODBC if it is not there already.
2. As for the ppd, you just need to find a ppm repository that has more pre-compiled modules than ActivePerl's PPM. ActivePerl's PPM has too few pre-compiled binary packages. But if you were to use ODBC, then you don't need to install DBD::Informix at all.
3. Your code looks Ok. You create the connection first, then prepare your statement, then execute the statement, then fetch the results. Pretty standard database programming techniques for Perl & DBI.