I would probably do something like the following:
#!/usr/bin/perl
#
use strict;
use warnings;
(@ARGV == 2) or die "USAGE: $0 master complete\n";
my ($master, $complete) = @ARGV;
open(my $fh_complete, '<', $complete) or die "$complete: $!";
open(my $fh_master, '<', $master ) or die "$master: $!";
my %complete = map { $_=> 1 } <$fh_complete>;
my @incomplete = grep { !$complete{$_} } <$fh_master>;
print @incomplete;
update: kennethk pointed out in a private message that the requirement might be an XOR operation (to paraphrase: all lines from both files (master and complete) that are not in both files), rather than all lines in the master file that are not also in the complete file. The program above provides the latter.
update: maybe it would be clearer to say: all lines that appear in either and only one of the two files. It is difficult to be both simple and unambiguous with English.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|