while (defined($_ = readdir(AUDDIR))) { next if /^\.\.?$/; unless (delete $files{$_}) { open(FH, "<$_") or die "Can't open file $_: $!\n"; flock(FH, LOCK_EX) or warn "Can't get exclusive lock on file $_ : $!\n"; close(FH); } }