У меня есть эти CSV-файлы. Я хочу создать один CSV, извлекая несколько полей из каждого CSV для определенного фрукта.например, для яблока, выберите 3-е поле из файла 2, выберите 5-е поле из файла 3.Аналогично для других фруктов выберите соответствующие данные (3-е поле из файла 2, 5-е поле из файла 3).
file1
яблоко, 60
апельсин, 40
виноград, 80
банан, 70
личи, 100
file2
апельсин, ab, 2
виноград, о, 4
банан, б, 6
яблоко, а, 8
личи, д, 10
file3 банан,ab, c, d, ef
apple, ab, c, d, ef
litchi, d, e, f, g
orange, d, e, f, г
виноград, д, е, ф, г
выход:
яблоко, 8, д, эф
апельсин, 2, ф,г
виноград, 4, ф, г
банан, 6, д, эф
личи, 10, ф, г
код:
my $File1 = '';
my $File2 = '';
my $File3 = '';
GetOptions ('file=s' => \$File1, 'file=s' => \$file2, 'file=s' => \$File3);
return ($File1,$File2,$File3);
}
sub append {
my ($File1,$File2,$File3) = @_;
my ($File) = @_ ;
open (FH,"<$File") or die ;
while (<FH>) {
chomp ;
my $line = $_ ;
my @arr = split /,/,$line ;
my $temp = "" ;
my $param = $arr[0] ;
$temp = "$arr[0]\n" ;
}
open (FH,"<$File2") or die ;
while (<FH>) {
chomp ;
my $line = $_ ;
my @columns = split/,/, $line ;
my $temp1 = "" ;
my $fruits = "" ;
foreach my $line(@arr){
if ($columns[0] =~ /fruits/) {
my $var2 = $arr[1] ;
$temp1 = "$arr[2]\n" ;
}
open (FH,"<$File3") or die ;
while (<FH>) {
chomp ;
my $line = $_ ;
my @arr = split /,/,$line ;
my $temp2 = "" ;
foreach my $line(@arr){
my $param = "" ;
my $temp = "" ;
my $temp1 = "" ;
if (defined $hashparam{@columns}){
my $var2 = $arr[5] ;
$temp2 = "$arr[5]\n" ;
print FH "$temp,$temp1,$temp2\n";
}
}