split ; 即等於 split /\s+/, $_;
split // 是每一个字符做分割
split / /; 是每一个空格做分割
所以 my @str=split(/ /,$_) 是不等於 my @str = split; 的
$_ = 'chr1 1111 A T';
my @str=split(/ /,$_); # 这个只有空格
print ">$_$/" foreach @str;
my @str=split; # \s 包括了 space, tab 等等'空白'的字符
print ">$_$/" foreach @str;
把你的上面的代码改成下面,你就可以看懂了:
while(<$dh>){
my @str=split(/ /,$_);
}
再长一点:
while($_ = <$dh>) {
my @str=split(/ /,$_);
}
再长一点点:
while(defined($_ = <$dh>) {
my @str=split(/ /,$_);
}
到这里,你已经完完明白了吧.主要是$_变量.