0

$Xentr4在第 6 行的 Convert1.pl 的连接 (.) 或字符串中使用未初始化的值

我收到以下错误:

在 Convert1.pl 第 6 行打开没有这样的文件或目录时出错"

#!/usr/bin/perl -w
# This script takes a user specified interleaved fasta input file $ARGV[0] and converts it to a sequential fasta file
use strict;

my $Xentr4=$ARGV[0];
open(IN, "<$Xentr4") || die ("Error opening $Xentr4 $!");

my $line = <IN>; 
print $line;

while ($line = <IN>)
{
        chomp $line;
        if ($line=~m/^>/) { 
                print "\n",$line,"\n"; 
               }
        else { 
                print $line; 
               }
}
4

2 回答 2

2

该错误可能会出现,因为您没有传递任何命令行参数。并且由于您$Xentr4使用第一个命令行参数进行初始化,因此在没有任何参数的情况下它将保持未初始化状态。

您需要将文件名作为命令行参数传递给脚本。


除此之外,您应该使用3-argopen:

open (IN, "<", $Xentr4) or die ("Error opening $Xentr4 $!");
于 2013-02-17T18:47:50.427 回答
0

变量$Xentr4可能正确undeffilepath可能不正确。

为了避免此类问题,您可以添加检查。

if ( (defined $Xentr4) && (-e $Xentr4) ) {
    open(IN, "<$Xentr4") || die ("Error opening $Xentr4 $!");
} else {
     print "Check the Argument passed.\n";
}
于 2013-03-07T15:17:23.390 回答