The presence of unused variables may indicate significant logic errors. To prevent such errors, unused values should be identified and removed from code.

Noncompliant Code Example

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;
}

Compliant Solution

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;
}

Risk Assessment

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

L3

Automated Detection

Tool

Diagnostic

Perl::Critic

Variables::ProhibitUnusedVariables

Related Guidelines

Bibliography