my $dir = "directory"; #### no trailing "/" opendir ( DH, $dir ) || die "Cannot open $dir: $!"; #### no "\n" foreach my $file ( readdir DH) # Note: only name, not full path { next unless $file =~ /\.fa$/; open (READ, '<', "$dir/$file") || die "Cannot open $dir/$file: $!"; while (my $line =) { if ($line =~ /^>/) { print $line; } } close READ; } close (DH);