www.foo.com
www.bar.com
www.dj.com
www.abc.com
www.def.com
www.ghij.com
www.zyx.com
www.wvut.com
www.srqpon.com
####
www.foo.com
www.bar.com
www.dj.com
www.bar.com
www.dj.com
www.music.com
www.abc.com
www.good.com
www.def.com
www.ghij.com
www.bad.com
www.zyx.com
www.wvut.com
www.srqpon.com
##
##
use strict;
my $file1 = "data1.txt";
my $file2 = "data2.txt";
my $raw_data1 = Slurp_File($file1);
my $raw_data2 = Slurp_File($file2);
my (@sections1) = ($raw_data1 =~ m/()/sig);
my (@sections2) = ($raw_data2 =~ m/()/sig);
my %parsed_file;
foreach my $section (@sections2) {
my ($id,@parsed_data) = Parse_Section($section);
foreach my $alias (@parsed_data) {
$parsed_file{$id}{$alias}++;
}
}
foreach my $section (@sections1) {
my ($id,@parsed_data) = Parse_Section($section);
foreach my $alias (@parsed_data) {
if (!$parsed_file{$id}{$alias}) {
print "HostID: $id, Host-Alias: $alias was missing from file '$file2'\n";
}
}
}
############
sub Slurp_File {
my $file = shift;
my $data;
open(DATA,"<",$file) || die "Unable to open file '$file': $!\n";
{
local $/;
$data = ;
}
close(DATA);
return $data;
}
sub Parse_Section {
my $data = shift;
my ($id) = ($data =~ m/id=\"(.+?)\"/i);
my (@alias) = ($data =~ m/host-alias>(.+?)##
HostID: bobjones, Host-Alias: www.foo.com was missing from file 'data2.txt'