i wrote a script which measure the hydrogen bond in RNA molecule, but i have this error, which i cannot handle. please help me. use of uninitialized value line 27.
#!/usr/bin/perl use warnings; use strict; my @structure; my @bases; my $basestring = <STDIN>; chomp($basestring); my $parenstring = <STDIN>; chomp($parenstring); print evalRnaStructure($basestring,$parenstring)," hydrogen bonds in t +his structure.\n"; sub evalRnaStructure { my ($basestring,$structurestring) = @_; @bases = split(//,"5.$basestring.3"); @structure = split(//,"($structurestring)"); return evalRna(0,$#structure); } sub evalRna { my ($l,$r) = @_; my %bonds= (GU=>1,UG=>1,AU=>2,UA=>2,CG=>3,GC=>3); my $numBonds = $bonds{$bases[$l].$bases[$r]}; my $level = 0; my $ii = $l; for (my $i=$l+1; $i<=$r; $i++) { $level-- if ($structure[$i] eq ")"); if ($level==0) { $numBonds+= evalRna($ii,$i) if ($structure[$i] eq ")"); $ii = $i; } $level++ if ($structure[$i] eq "("); } return $numBonds; }
In reply to recursive algorithm by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |