Text 1:
Entry 1
1 N
2 D
EOE
####
Text 2:
Entry 3
6 N
7
EOE
Entry 5
4 D
9 D
EOE
####
use strict;
use warnings;
my (@data1,@data2);
my (@array,@array2);
open my $fh, '<', 'Text1' or die "Could not open file to read:$!";
while (<$fh>) {
if (/^\Entry (\w+)/../\EOE/){
push @array, $_;
if (/^(\Entry)/){
push @data1 ,$1;
}
}
}
open $fh, '<', 'Text2' or die "Could not open file to read:$!";
while (<$fh>) {
if (/^\Entry (\w+)/../\EOE/){
push @array2, $_;
if (/^(\Entry)/){
push @data2 , $1;
}
}
}
print @array2;
my $size = @data1 < @data2 ? @data1 : @data2;
my $result= @data1 < @data2 ? "File 1 has missing data" : "File 2 has missing data";
my $ori = @data1 == @data2 ? 1:0;
my $i;
for( $i = 0; $i < $size; $i++){
if ($data1[$i] ne $data2[$i]){
printf "%s is mismatch with %s\n",$data1[$i],$data2[$i];
}
else {
&compare();
}
}
print "$result\n" if (!$ori);