对于找到的每个幻数,我必须使用“找到幻数”消息将输出作为行号提供
我正在解析一个 .C 文件。
幻数基本上是
if(list == 5) // here 5 is magic number
for(int i = 0; i<6; i++) //here 6 is magic number
我的代码
use strict;
use warnings;
my $input = $ARGV[0];
open(FILE, $input) or die $!;
my @lines = <FILE>;
my $count = 0;
foreach(@lines){
$count++;
if($_ =~ 'for\('){ # I want to check within for( )
if($_ =~ '#####'){ # how do the check for numbers
print "magic number found at line:".$count;
}
}
elif($_ =~ 'if\('){ # I want to check within if( )
if($_ =~ '#####'){
print "magic number found at line:".$count;
}
}
}
由于幻数仅存在于 for 循环和 if 循环中,所以我想检查括号内是否存在任何十进制或十六进制值。