我想读一个文件来提取几行信息.我创建了一个do ..直到忽略文件行,直到我到达我真正感兴趣的部分,其中包含单词V2000.我更喜欢使用一般的正则表达式而不是寻找V2000.
匹配被找到,但它没有突破do .. until循环,因此我无法提取紧接着之后的信息
有谁知道为什么?
do {$line = <IN_SDF>;} until ($line =~ m/V\d+/);
Run Code Online (Sandbox Code Playgroud)
其余的代码是:
my @aline = split ('', $line);
my $natoms = $aline[0];
my $out= shift;
do{
<IN_SDF>;
@aline = split ('', $_);
print OUT_3D $aline[3]."\t".$aline[0]."\t".$aline[1]."\t".$aline[2]."\n";
} until --$natoms == 0;
Run Code Online (Sandbox Code Playgroud)