in reply to DBIx::Dump error - can't use string as subroutine ref

my $out = DBIx::Dump->new('format' => $format_pass, ...
i think you will find that $format_pass does not eq one of 'excel', 'csv', or 'iQuery'.
if ($format_pass eq "csv") {$filename_pass.=csv;}else {$filename_pass. +=xls;} if (!$filename_pass) {$filename_pass=query.csv;}
you appear to be using bareword strings here, which is very dangerous and bound to bite you at some point. (ie, query.csv is being interpretted as "query"."csv" aka "querycsv" which is possible not what you inteded.)

update: you should consider use strict; to help deal with the bareword issue mentioned above.

i see you have a <select> being printed like so:

<select type="option" name="format"><option>csv<option>xls</select>
according to the docs, you want format => 'excel', not xls.