Perl: Zwei CSV-Dateien vergleichen und Unterschiede ausdrucken
Ich bin ein Noob in Perl und es fällt mir schwer, das zu erledigen. Ich habe zwei einspaltige CSV-Dateien und versuche, die Unterschiede in eine dritte Datei zu drucken.
File1:
123
124
125
126
File2:
123
124
127
Expected Output:
125
126
127
Dies ist, was ich bisher habe, was nicht funktioniert:
#!/usr/bin/perl
use strict;
use warnings;
my $sheet_1;
my $sheet_2;
my $count1 = 0;
my $count2 = 0;
my $file1 = 'file1.csv';
my $file2 = 'file2.csv';
my $file_out = 'output.csv';
open (FILE1, "<$file1") or die "Couldn't open input file: $!";
open (FILE2, "<$file2") or die "Couldn't open input file: $!";
while( <FILE1> ) {
chomp;
$count1++;
#skip header;
next unless $count1;
my $row_1;
@$row_1 = split( /,/, $_ );
push @$sheet_1, $row_1;
}
@$sheet_1 = sort { $a->[0] <=> $b->[0] } @$sheet_1;
while( <FILE2> ) {
chomp;
$count2++;
#skip header;
next unless $count2;
my $row_2;
@$row_2 = split( /,/, $_ );
push @$sheet_2, $row_2;
}
@$sheet_2 = sort { $a->[0] <=> $b->[0] } @$sheet_2;
OUTER: {
foreach my $row_1 ( @$sheet_1 ) {
foreach my $row_2 ( @$sheet_2 ) {
if (@$row_1[0] eq @$row_2[0]){
last OUTER
}
else{
print "@$row_1[0]\n";
}
}
}
}
close FILE1;
close FILE2;