帮忙看一下我的程序哪出问题了?

帮忙看一下我的程序哪出问题了?

帮忙看一下我的程序哪出问题了?
我做21days练习中遇到的。目的:从屏幕输入一行字符,调用子程序计算其中字母“t”出现的次数。不知为什么,下面这段程序运行后cpu占用100%?!请高手解答,在线等待!(我用的是Active perl 5.8,os:win xp.)
$total = &count_t;
print $total;
sub count_t {
$line=<STDIN>;
chop($line);
$in=0;
$t=0;
@a=split (/" "/,$line);
while ($in<=@a) {
if ($a[$in]="t") {
$t +=1;
}
$in++;
}
$tot=$t;
}




   

thanks
谢谢!很有启发。[CCB]2[/CCB]
$var =~ tr/t//c;--如果.
$var =~ tr/t//c;
如果只有c好像不能做到翻译所有除了t以外的字符变成"没有“ “null" "//"
为什么要和d连用?谁能告诉我为什么?
先把t除去?然后再把剩下的变成没有?然后t怎么又留下了?
花有重开日,人无再少年
肯定是while语句死循环了。
错误原因
if ($a[$in]="t") # 错误!

这句是赋值语句,不是判断语句。假设@a为10,当$in为10时,这句就变成了$a[10] = "t",使得@a变成了11,这样以后$in永远等于@a。

字符串判断相等应用eq操作符。
了解了。.
花有重开日,人无再少年