我有一个要读取的SD文件。我无法上传整个文件。所以我在下图中给出了快照。
这是一个解释分子结构的SD文件(结构数据文件)。 803和AMH是两个分子。而且,在同一分子内有几个片段。每个片段由四个美元符号($$$$)分隔。我是一名新人,因为我是一名生物医学研究生。但是,我写了一个脚本,找到了$$$$的出现,然后在它旁边排列了分子代码(这里是803)。
{
open (FILE, '<', "try_803.txt");
my $ligandcode="803";
while (<FILE>) {
my $nextline = <FILE>;
if ( $_=~/\x24\x24\x24\x24/ && $nextline=~/$ligandcode/){
# do something
}
}
}
此代码检查第一次出现的$$$$后跟803.但是,我希望它继续下一次出现$$$$后跟803.我不知道这种模式会发生多少次会发生。从技术上讲,我不能事先指定片段的否。你能帮助我改进这段代码并找到问题的解决方案吗?我将不胜感激。
答案 0 :(得分:0)
您可以将输入记录分隔符设置为四个dolar符号,换行符和803。
local $/ = '$$$$' . "\n803";
然后,你可以循环读取整个分子:
while (<FILE>) {
my $molecule = $_;
}