使用tr ///运算符计算字符串中的字母

Jor*_*dan 3 string perl count

我想在序列或字符串中计算A,C和G的数量.我写了以下代码.

但是当我打印这些值时,只有A打印出来.C和G显示为零.在下面的代码中,我首先评估A,但如果我通过首先评估C来切换顺序,我得到C的值,但是现在A和G被打印为零.

谁能告诉我我的代码有什么问题?谢谢!

#! /usr/bin/perl

use strict;
use warnings;

open(IN, "200BP_junctions_fasta.faa") or die "Cannot open the file: $!\n";
while(<IN>) 
    next if $_ =~ /\>/;
    my $a = ($_ = tr/A//);
    my $c = ($_ = tr/C//);
    my $g = ($_ = tr/G//);
    print "A:$a, C:$c, G:$g\n";
}
Run Code Online (Sandbox Code Playgroud)

该文件如下所示:

> A_Seq  
ATGCTAGCTAGCTAGCTAGTC  
> B_Seq  
ATGCGATCGATCGATCGATAG  
Run Code Online (Sandbox Code Playgroud)

N13*_*N13 6

改变你$_ = tr/$_ =~ tr/.而且,你错过了一个开放式支架while.