我无法将任何值存储在数组@AA 中

I am not able to get any values to store in the array @AA

它正在获取正确的输入并在 for 循环内打印它们,但是当我稍后尝试将它发送到功能模块时,或者如果我尝试在 for 循环外打印它时它是空的。 我需要更改什么?

#!/usr/bin/perl
use lib "."; # This pragma include the current working directory 
use Mytools;


$inputfilename = shift @ARGV;
open (INFILE, $inputfilename) or die
            ("Error reading file $inputfilename: $! \n");

# Storing every line of the input file in array @file_array
while (<INFILE>){
        $file_array[ $#file_array + 1 ] = $_;
        
}
my $protein;
my @AA;
foreach $protein (@file_array)
{
@AA = Mytools::dnaToAA($protein);
print "The main AA\n",@AA;
}
print "The main array",@file_array;

my $header1 = "AA";
my $header2 = "DNA";
Mytools::printreport($header1, $header2, \@AA, \@file_array);

您在 foreach 循环的每次迭代中都覆盖了 @AA。 而不是

@AA = Mytools::dnaToAA($protein);

使用

push @AA, Mytools::dnaToAA($protein);

参见push

下次,尝试 post 运行 启用代码(参见 mre),即避免使用 Mytools,因为它们与问题无关并使代码无法 运行 除了你以外的任何人。