key1,key2,data1,data2,data3
A,1,A1d1,A1d2,A1d3
A,2,A2d1,A2d2,A2d3
B,1,B1d1,B1d2,B1d3
####
key1,key2,data4,data5
A,1,A1d4,A1d5
A,2,A2d4,A2d5
B,1,B1d4,B1d5
A,2,A2d4bis,A2d5bis
A,2,A2d4ter,A2d5ter
B,1,B1d4bis,B1d5bis
####
use strict;
use warnings;
use 5.012;
use DBD::CSV;
my $dbh =
DBI->connect( "dbi:CSV:f_dir=.", undef, undef,
{ FetchHashKeyName => "NAME_lc", RaiseError => 1, PrintError => 1, } )
or die $DBI::errstr;
my $query =
'SELECT key1, key2, data1, data2, data3, data4, data5 FROM file1 JOIN file2 WHERE file1.key1 = file2.key1 AND file1.key2 = file2.key2';
my $sth = $dbh->prepare($query);
$sth->execute();
while ( my @row = $sth->fetchrow_array ) {
say join '|', @row;
}
$sth->finish();
####
A|1|A1d1|A1d2|A1d3|A1d4|A1d5
A|2|A2d1|A2d2|A2d3|A2d4|A2d5
A|2|A2d1|A2d2|A2d3|A2d4bis|A2d5bis
A|2|A2d1|A2d2|A2d3|A2d4ter|A2d5ter
B|1|B1d1|B1d2|B1d3|B1d4|B1d5
B|1|B1d1|B1d2|B1d3|B1d4bis|B1d5bis