File 1: File 2:
0001,aname,bname 0001,aname,bname
0002,cname,bname 0003,aname,bname
0004,dname,bname 0005,fname,bname
0005,dname,bname
####
Final:
0001,aname,bname
0002,cname,bname
0004,dname,bname
####
use strict;
use warnings;
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
print "Cache-Control: max-age=30\n";
my %final;
my %compare1;
my %compare2;
my %compare3;
my $maxid = "2000";
open(DAT, "data/parsed-Black_Dragon.txt");
my @data = ;
close(DAT);
for(my $i = 0; $i < scalar(@data); $i++) { # dump file data into hashed array
my $id = substr($data[$i], 0, 4); # get current planet id
$compare1{$id} = $data[$i];
delete $data[$i];
}
@data = ();
open(DAT, "data/parsed-BMoom.txt");
@data = ;
close(DAT);
for(my $i = 0; $i < scalar(@data); $i++) { # dump file data into hashed array
my $id = substr($data[$i], 0, 4); # get current planet id
$compare2{$id} = $data[$i];
delete $data[$i];
}
@data = ();
open(DAT, "data/parsed-Litex.txt");
@data = ;
close(DAT);
for(my $i = 0; $i < scalar(@data); $i++) { # dump file data into hashed array
my $id = substr($data[$i], 0, 4); # get current planet id
$compare3{$id} = $data[$i];
delete $data[$i];
}
@data = ();
open(DAT,">data/parsed-all.txt"); # open appropriate parsed file and clear it
close(DAT);
for(my $i = 1; $i <= $maxid; $i++) {
my $currid = changeID($i);
my $delid = changeID($i - 1);
delete $compare1{$delid};
delete $compare2{$delid};
delete $compare3{$delid};
next if( defined $compare1{$currid} &&
defined $compare2{$currid} &&
defined $compare3{$currid} &&
$compare1{$currid} ne $compare2{$currid} &&
$compare1{$currid} ne $compare3{$currid} &&
$compare2{$currid} ne $compare3{$currid} );
open(DAT,">>data/parsed-all.txt");
if( defined $compare1{$currid} && !defined $compare2{$currid} && !defined $compare2{$currid} ) {
print DAT $compare1{$currid};
next;
}
if( defined $compare2{$currid} && !defined $compare1{$currid} && !defined $compare3{$currid} ) {
print DAT $compare2{$currid};
next;
}
if( defined $compare3{$currid} && !defined $compare1{$currid} && !defined $compare2{$currid} ) {
print DAT $compare2{$currid};
next;
}
if( defined $compare1{$currid} && defined $compare2{$currid} ) {
if( $compare1{$currid} eq $compare2{$currid} ) {
print DAT $compare1{$currid};
next;
}
}
if( defined $compare1{$currid} && defined $compare3{$currid} ) {
if( $compare1{$currid} eq $compare3{$currid} ) {
print DAT $compare1{$currid};
next;
}
}
if( defined $compare2{$currid} && defined $compare3{$currid} ) {
if( $compare2{$currid} eq $compare3{$currid} ) {
print DAT $compare2{$currid};
next;
}
}
close(DAT);
}
print "Location: planetDiscovered.cgi\n\n";
exit;
sub changeID {
return sprintf "%04d", $_[0];
}
####
0001,Nunki 2 1,5847,71%,0.71,4151.37,ThrevenGuard,-18,-26