我正在打开一个目录,其中包含如下所示的文件。这是一个文件:
>UVWXY
ABCDEFGHIJKLMNOPQRSTUVWXYZ
>STUVW
ABCDEFGHIJKLMNOPQRSTUVWXYZ
>QRSTU
ABCDEFGHIJKLMNOPQRSTUVWXYZ
这是第二个文件:
>EFGHI
ABCDEFGHIJKLMNOPQRSTUVWXYZ
这是我的代码:
#!/usr/bin/perl
use warnings;
use strict;
my ($directory) = @ARGV;
my $dir = "$directory";
my @ArrayofFiles = glob "$dir/*";
open(OUT, ">", "/path/to/output.txt") or die $!;
foreach my $file(@ArrayofFiles){
open(my $fastas, $file) or die $!;
my $numberoffastas = grep{/>/}<$fastas>;
#print $numberoffastas, "\n";
while (my $line = <$fastas>){
print $line, "\n";
}
}
没有为 $line 打印任何内容,但此代码正确计算了打开文件时出现在文件中的“>”的数量,打印 $numberoffastas 就是证明。
如何修复此代码,以便 $line = 类似于:
>EFGHI
或者
ABCDEFGHIJKLMNOPQRSTUVWXYZ
谢谢