FILE: for my $file ( @files ) { open my $fh, '<', $file or die "open($file,ro) failed: $!"; push @dbhosts, map { /$search\s*=\s*(\S+)/i && ! $seen{$1}++ ? ($1) : () } <$fh>; close $fh; }