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]; }