我想重新加载perl中的索引前文件,该文件先前已编入索引如下:
./first_script.pl hg19.fa
use Bio::DB::Fasta;
my $db = Bio::DB::Fasta->new($file_fasta);
...
在另一个脚本中我想重新加载现有的索引文件。
./ script.pl hg19.fa.index input
#!/usr/bin/perl
use warnings;
use strict;
use Bio::DB::Fasta;
my $fasta_index_file = $ARGV[0];
my $input_file = $ARGV[1];
open(FH,"<$input_file");
my $db->index_file($fasta_index_file);
在描述中是syas
Title : index_file
Usage : $db->index_file($filename)
Function: (re)loads a sequence file and indexes sequences offsets in the file
Returns : seq offsets in the file
Args : filename,
boolean to force reloading a file
但它返回以下错误:
Can't call method "index_file" on an undefined value at script.pl line
如果我再次使用,请在第二个脚本中:
my $db = Bio::DB::Fasta->new($file_fasta);
它立即进入下一步!这是否意味着它已经意识到它存在?
答案 0 :(得分:1)
您没有在第二个脚本中的任何位置定义$db
。
通常情况下,use strict;
会发现这一点,应该是您排查故障的第一步。