#!/usr/bin/perl use strict; use warnings; my %test1; open my $fh1, '<', 'test1.txt' or die "Open fail: $!"; while (<$fh1>) { my ($temp, $letter, undef, $number) = split; $test1{$temp}{$letter}{$number} = 1; } open my $fh, '<', 'test.txt' or die "Open fail: $!"; while (<$fh>) { my ($temp, $letter, undef, $number) = split; unless (defined $test1{$temp}{$letter}{$number}) { print; } }