我與DNA序列工作的文件,這個文件的格式是這樣的,雖然有超過一個序列:的Perl:字符串中子字符串或子字符串中
>name of sequence
EXAMPLESEQUENCEATCGATCGATCG
我需要能告訴我們,如果一個變量(這也是一個序列)匹配任何序列的文件中,以及它匹配序列的名稱,如果有的話,是。由於這些序列的性質,我的整個變量可能包含在文件的一行中,或者變量的一行可能是我變量的一部分。 現在我的代碼看起來是這樣的:
use warnings;
use strict;
my $filename = "https://stackoverflow.com/users/me/file/path/file.txt";
my $exampleentry = "ATCG";
my $returnval = "The sequence does not match any in the file";
open file, "<$filename" or die "Can't find file";
my @Name;
my @Sequence;
my $inx = 0;
while (<file>){
$Name[$inx] = <file>;
$Sequence[$inx] = <file>;
$indx++;
}unless(index($Sequence[$inx], $exampleentry) != -1 || index($exampleentry, $Sequence[$inx]) != -1){
$returnval = "The sequence matches: ". $Name[$inx];
}
print $returnval;
然而,即使我故意設置$條目從文件中比賽,我還是回到The sequence does not match any in the file
。此外,當運行代碼時,我得到Use of uninitialized value in index at thiscode.pl line 14, <file> line 3002.
以及Use of uninitialized value within @Name in concatenation (.) or string at thiscode.pl line 15, <file> line 3002.
我怎麼能執行這個搜索?
謝謝!對不起,在這個問題上我可憐的措詞。 –