# /usr/bin/perl -Tw
#-----------------------------------------------------------------------
# Created: 2014-12-??
#-----------------------------------------------------------------------
# TODO
# - accept stdin
# - accept more than two files (all will also be removed from first file)
#-----------------------------------------------------------------------

use strict;
use warnings;

use File::Slurp;

#use Set::Object;	# NO - no way to preserve order.
#use List::Compare;	# NO - no way to preserve order.
use Array::Utils qw(:all);

#-----------------------------------------------------------------------
my $file1 = $ARGV[0] || die 'bad file1';
my $file2 = $ARGV[1] || die 'bad file2';

if ((! -r $file1) or (! -r $file2)) {
    print "Error: $file1 or $file2 not readable.\n";
    exit 1;
}

my @set1 = read_file $file1;
my @set2 = read_file $file2;

my @left_only = array_minus(@set1, @set2);

for my $item (@left_only) {
	print "$item";
}

#-----------------------------------------------------------------------