use strict; opendir(DIR,$newfile) or die "Blerch: $!\n"; my %files=map {$_,1} readdir(DIR); #assume %oldfiles was set before in a similar way foreach my $file (keys %newfiles) { unless (exists $oldfiles{$file}) do_we_have_a_new_file(); #Cheers and happiness!! }