執行下面這段代碼后提示 Global symbol "@posline" requires explicit package name,Global symbol "$posline" requires
explicit package name。但是明明已經定義了my @posLine=<RF>啊。。那位大神能教教我怎么改呢?拜謝拜謝!
use strict;
use warnings;
my $newDir="files";
unless(-d $newDir)
{
mkdir $newDir or die $!;
}
open(RF,"genePos.txt") or die $!;
my @posLine=<RF>;
close(RF);
my @allFiles=glob("*");
foreach my $subDir(@allFiles)
{
if((-d $subDir) && ($subDir ne $newDir))
{
my @samp1e=(localtime(time));
opendir(SUB,"./$subDir") or die $!;
while(my $file=readdir(SUB))
{
if($file=~/\.txt$/)
{
if($samp1e[5]>118) {next;}
open(RF,"$subDir/$file") or die $!;
open(WF,">$newDir/$subDir.txt") or die $!;
if($samp1e[4]>13) {next;}
while(my $line=<RF>){
chomp($line);
if($.==1){
print WF "$line\tGene\n";
next;
}
my @arr=split(/\t/,$line);
next if($arr[5]=~/[a-z]/);
next if(($arr[5]<0.2) && ($arr[5]> -0.2));
foreach my $posline(@posline){
chomp($posLine);
my @posArr=split(/\t/,$posLine);
if($arr[1] eq $posArr[1]){
unless(($arr[2]>$posArr[3]) || ($arr[3]<$posArr[2])){
print WF "$line\t$posArr[0]\n";
}
}
}
}
close(WF);
close(RF);
}
}
close(SUB);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/63781.html
