Warum wird Perl sich beschweren, über die "Verwendung von nicht initialisierten Wert" in mein CGI-Skript?

Bin ich die Reinigung meines Perl-code, die für die Produktion freigeben und stieß dabei auf eine seltsame Warnung in der Apache-error-log.

Er sagt:

[Thu Nov 5 15:19:02 2009] Clouds.pm: Use of uninitialized value $name in substitution (s///) at /home/mike/workspace/olefa/mod-bin/OSA/Clouds.pm line 404.

Den relevanten code ist hier:

my $name         = shift @_;
my $name_options = shift @_;

$name_options = $name_options eq 'unique'     ? 'u'
              : $name_options eq 'overwrite'  ? 'o'
              : $name_options eq 'enumerate'  ? 'e'
              : $name_options =~ m/^(?:u|o|e)$/ ? $name_options
              : q();

if ($name_options ne 'e') {
   $name =~ s//_/g;
}

So, warum die Warnung vor einer nicht initialisierten Variablen, wie es ist deutlich initialisiert?

  • Wie wissen Sie, dass Sie vergangen, nichts zu dieser Funktion?
  • In computer-Programmierung, Worte wie "eindeutig", "offensichtlich", und "unkompliziert" sind ironisch gemeint. Der Moment, in dem Sie Ihnen sagen, das Gegenteil ist wahr. Es ist ein Gesetz des Universums.
  • Die Linie 404?
InformationsquelleAutor Mike | 2009-11-05
Schreibe einen Kommentar