cburger has asked for the wisdom of the Perl Monks concerning the following question:
I'm trying to write a script which replaces one letter with another for nucleotide bases. e.g. A with T. when I write:
for example I want to convert this string:
AAGCTT
with:
TTCGAA
I wrote something like:
while(/(.)/g) { my $letter= uc $1; print $letter; my $len=length($letter); my $sub=""; if ($letter=="A") { $sub="T";} elsif ($letter=="T") { $sub="A";} elsif ($letter=="G") { $sub="C";} elsif ($letter=="C") { $sub="G";} print " $len\t$sub\n"; } # close while
the replacement is not correct and I get for the print out:
A 1 T A 1 T G 1 T C 1 T T 1 T T 1 T
what is happening? why is sub always T and not changing? I dont see the problem with the lines.. thanks for the help!
thanks everyone! I could figure out the problem now. Indeed the eq sign mix up was the problem, and I wasnt aware of the tr// possibility. Painful learning from sloppiness...Thanks again for the help perlmonks!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: problems with converting a string character by character
by toolic (Bishop) on Feb 02, 2011 at 01:02 UTC | |
|
Re: problems with converting a string character by character
by Anonyrnous Monk (Hermit) on Feb 02, 2011 at 00:59 UTC | |
|
Re: problems with converting a string character by character
by jethro (Monsignor) on Feb 02, 2011 at 01:09 UTC | |
by jwkrahn (Abbot) on Feb 02, 2011 at 01:17 UTC |