它正在獲取正確的輸入并將它們列印在 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);
uj5u.com熱心網友回復:
您在 foreach 回圈的每次迭代中都覆寫了 @AA。代替
@AA = Mytools::dnaToAA($protein);
利用
push @AA, Mytools::dnaToAA($protein);
見推。
接下來的時間,嘗試發布可運行的代碼(見MRE),即避免銘佑因為他們是無關的問題,使代碼不可能為任何人,但你跑。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/378824.html
上一篇:包裝器生成器SWIG(C /Perl):如何在Perl中訪問一維向量<double>中的“blessed”物件?
