use strict; use warnings; $\="\n"; open my $fh1, '<', 'file1' or die $!; open my $fh2, '<', 'file2' or die $!; open my $out, '>', 'file1minusfile2' or die $!; chomp(my @arr1=<$fh1>); chomp(my @arr2=<$fh2>); foreach my $x (@arr1){ print $out $x if (!grep (/^\Q$x\E$/,@arr2)); }