I am using List::Compare to compare two files and print out the output in html, but since I'm using arrays the output is coming out in one row instead of different rows.
example
file1.txt
aaaa
bbbb
cccc
dddd
file2.txt
aaaa
bbbb
cccc
eeee
code
use strict;
use warnings;
use Getopt::Long;
use List::Compare;
my $f1 = 'file1.txt';
open FILE1, "$f1" or die "Could not open file $f1 \n";
my $f2= 'file2.txt';
open FILE2, "$f2" or die "Could not open $f2 \n";
my $outputFile = 'finaloutput.txt';
my @body="";
push(@body, "<html> \n");
push(@body, "<head> \n");
push(@body, "<TABLE BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"0\" WIDTH=\"100%\" \n");
push(@body, " <TD>");
push(@body, "<div align=\"left\"><Table border=2 bordercolor= \"black\"> \n");
push(@body, "<tr bgcolor=\"ORANGE\"><TH><b>uniq in file1</b></TH><TH>uniq in file 2</TH><TH>common</TH></TR>");
push(@body, "<br>\n");
my @latest=<FILE1>;
my @pevious=<FILE2>;
my $compare = List::Compare->new(\@latest, \@pevious);
my @intersection = $compare->get_intersection;
my @firstonly = $compare->get_unique;
my @secondonly = $compare->get_complement;
print "Common in both:\n"."@intersection"."\n";
push(@body, "<tr><td>@intersection</td>\n");
print "uniq in first file:\n"."@firstonly"."\n";
push(@body, "<td>@firstonly</td>\n");
print "Items uniq in Second File:\n"."@secondonly"."\n";
push(@body, "<td>@secondonly</td></tr>\n");
push(@body, "</div></Table>" );
my $Joining= join('', @body);
push(@body, "</body></font>");
push(@body, "</html>");
print FILE"$Joining";
close FILE;
close FILE1;
close FILE2;
Here is the html output that I get for the first column:
<tr><td>aaaa
bbbb
cccc </td></tr>
I want to have:
<tr><td>aaaa</td> <td>bbbb</td><td>cccc</td></tr>
I hope I have explained it properly.
the first column? First it looked like you just get unchomped strings fromList::Comparemethods (which were interpolated in"<tr><td>@intersection</td></tr>"line), but then again, your last element is not followed by a newline...