#!/usr/bin/perl use strict; use warnings; #declaration of variables my $file1 = '/opt/programming/work/f1.txt'; my $file2 = '/opt/programming/work/f2.txt'; my $outfile = '/opt/programming/work/of.txt'; my %results; open my $f1_fh, '<', $file1 or die "Could not open $file1: $!\n"; while (defined(my $line = <$f1_fh>)) { chomp $line; $results{$line} = (); } close $f1_fh; open my $output_fh, '>', $outfile or die "Cannot open $outfile for writing: $!\n"; open my $f2_fh, '<', $file2 or die "Could not open $file2: $!\n"; while (defined(my $line = <$f2_fh>)) { chomp $line; if (not exists $results{$line}) { print {$output_fh} $line, "\n"; } } close $f2_fh; close $output_fh;