我正在编写 perl 脚本来找出某些代码中未使用的变量。我能够获得该函数中所有变量的整个函数体和名称。
我现在想计算函数体内每个变量的出现次数(如果它只出现了 1,这是未使用的变量,否则没关系)。
删除函数体中的注释以避免错误计数。
foreach my $var (@vars) { # @vars is an array of all variables name
# $fun_body is function body (string)
my $count = $fun_body =~ tr/\Q$var//; # this line is tricky and does not work
print $count." : ".$var."\n";
}
现在我从我的脚本中得到一些无用的信息:
1046 : v_result
1046 : v_LastValue
1046 : v_LastValue_2
看起来脚本不使用变量作为正则表达式的输入,而是$var
用作字符串。优化不是我想要的,或者我会在脚本正常工作时进行优化(要解析的代码相对较小,它有 100k - 500k 行)。
我的问题是:any1 知道如何使用使用变量的正则表达式来计数吗?