2014-12-07 7 views
-3

크기 15의 슬라이딩 윈도우를 만들고 Fasta 파일을 통해 슬라이딩 윈도우의 모든 값을 해시에 저장해야했습니다. 내가 인쇄하려고 할 때 나는 오류를 얻을슬라이딩 윈도우를 만들고 슬라이딩 윈도우의 값을 해시에 넣는 방법은 무엇입니까?

전역 기호 "$ 시퀀스는"./findAllKmers.1.pl의 실행으로 인해 중단되었습니다 (60)
./findAllKmers.1.pl 라인에서 명시 적으로 패키지 이름이 필요합니다 컴파일 오류 "

#!/usr/bin/perl 
use warnings; 
use strict; 

my %windowSeqScores =(); 

my $sequenceRef = loadSequence("/scratch/Drosophila/dmel-2L-chromosome-r5.54.fasta"); 
my $windowSize = 23; 
my $stepSize = 1; 
my $maxScore = 0; 
my $sequence = @_; 
my $in_file = 'uniqueKmersEndingGG.fasta'; 

open (my $fh, '>', $in_file) or die "Could not open file 'filename' $!"; 

for (
    my $windowStart = 0; 
    $windowStart <= (length($$sequenceRef) - $windowSize); 
    $windowStart += $stepSize 
) 
{ 
    my $windowSeq = substr($$sequenceRef, $windowStart, $windowSize); 
    sub loadSequence { 
     my ($sequenceFile) = @_; 
     my $sequence = ""; 
     my $counter = 0; 
     unless (open(FASTA, "<", $sequenceFile)) { 
      die $!; 
     } 

     while (<FASTA>) { 
      my $line = $_; 
      chomp($line); 
      if ($line !~ /^>/) { 
       my $sequence = $line; 
       if (length($sequence) == 15) { 
       $counter = $counter + 1; 
       print $_; 
      } 
     } 
     return \$sequence; 
    } 
} 
print $sequence; 
+1

46 줄의 코드 만 올렸지 만 60 줄에 오류가 있습니다. – Yetti99

+0

죄송합니다. 불필요한 코드가 많아졌습니다. 오류는 $ line의 마지막 행에 있습니다. 도와 줘서 고마워. –

답변

0

나는. 나는 오류가 발생했습니다 코드를 컴파일 시도"라인의 끝에서, test.pl 라인 (44)에 바로 곱슬 또는 대괄호 누락이 후} ""난 그냥 가까운 중괄호 추가 " 마지막 줄 그리고 컴파일 됨.

for() 루프 내에서 함수를 선언하고 있습니다. 그것은 그다지 특이한 것이 아닙니다. 나는 그 루프 밖에서 가장 할 수 있었다.