use strict; use warnings; use DBI; use Data::Dumper; my $dbh = DBI->connect("DBI:CSV:", undef, undef, { csv_eol=> "\r\n", csv_sep_char => '~'}); $dbh->{'csv_tables'}->{'JPDObj'} = {'file' => 'data/objectives-cqdc.txt','col_names' => ["Obj","PosNbr","Year","Div","AVP","Dept","SDescr","Major","Methods","Results","Accompl","JanUp","LDescr","Changes","Chars","Goals","Budget","CFObj"]}; $dbh->{'RaiseError'} = 1; $@ = ''; my $Cposition = '00001576'; my $Cyear = 2014; my $results = $dbh->selectall_arrayref( "SELECT Obj,SDescr,Major,Year,LDescr FROM JPDObj WHERE PosNbr = ? AND Year = ?", { Slice => {} }, $Cposition, $Cyear); for ( @$results ) { print Dumper( $_ ) . "\n"; }