The presence of unused variables may indicate significant logic errors. To prevent such errors, unused values should be identified and removed from code.
This noncompliant code example contains a variable $new_name that is initialized, but never subsequently read.
sub fix_name {
my $name = shift;
my $new_name = $name;
$name =~ s/^([a-z])/\U$1\E/g;
$name =~ s/ ([a-z])/ \U$1\E/g;
return $name;
}
|
This compliant solution eliminates the unused variable
sub fix_name {
my $name = shift;
$name =~ s/^([a-z])/\U$1\E/g;
$name =~ s/ ([a-z])/ \U$1\E/g;
return $name;
}
|
The presence of unused variables may indicate logic errors that can lead to unintended program behavior. As a result, resolving unused variables can be an in-depth process requiring significant analysis.
Recommendation |
Severity |
Likelihood |
Remediation Cost |
Priority |
Level |
|---|---|---|---|---|---|
MSC01-PL |
low |
unlikely |
high |
P1 |
L1 |
CERT C Secure Coding Standard: MSC13-C. Detect and remove unused values
CERT C++ Secure Coding Standard: MSC13-CPP. Detect and remove unused values
Tool |
Diagnostic |
|---|---|
Perl::Critic |
Variables::ProhibitUnusedVariables |
\[[CPAN|AA. Bibliography#CPAN]\] [Elliot Shank, Perl-Critic-1.116|http://search.cpan.org/~elliotjs/Perl-Critic-1.116/] [Variables::ProhibitUnusedVariables|http://search.cpan.org/dist/Perl-Critic/lib/Perl/Critic/Policy/Variables/ProhibitUnusedVariables.pm] |
EXP30-PL. Do not use deprecated or obsolete functions 02. Expressions