use DBI; use File::Basename; use strict; my $dir = '.'; my $file = 'foo.csv'; my $table = (fileparse($file,'.csv'))[0]; my $cols = [qw(name id date)]; my $sep = ','; my $dbh = DBI->connect( "DBI:CSV:f_dir=$dir;csv_eol=\n;csv_sep_char=$sep;", {RaiseError=>1}, ); $dbh->{csv_tables}->{$table} = { file => $file, col_names => $cols, }; my $xml = My::DBIx::XML_RDB->new($dbh); $xml->DoSql("select * from $table"); print $xml->GetData(); package My::DBIx::XML_RDB; use base qw(DBIx::XML_RDB); sub Initialise { my ($self,$dbh) = @_; $self->{dbh} = $dbh; $self->{output} = qq|\n\n|; return 1; }