Thread uninitialized value (9 answers)
Opened by kean at 2009-03-04 11:46

Gast linuxer
 2009-03-04 12:54
#91 #91
Guest kean
Wenn ich den Code jetzt ausführe kommt der Fehler "Use of uninitialized value $rangecolumns in numeric lt (<)"

Ich habe die Variable doch aber mit my deklariert...


Die Deklaration einer Variable mit "my" sagt noch nichts über ihren Inhalt aus. In diesem Fall ist eben kein Inhalt vorhanden (also undef), welches dann in der Warnung als "uninitialized value" bezeichnet wird.

Du solltest kontrollieren, ob "$_[2]->cget(-columns)" wirklich das gewünschte zurückliefert. Anscheinend nicht!

Btw, es ist in der Regel besser, die Argumente benannt zu übernehmen anstatt mit @_ und $_[0],... zu arbeiten.

Vergleiche bitte
Code (perl): (dl )
1
2
3
4
5
sub foo {

  print $_[0]->header,
    $_[1]->output;
}


mit
Code (perl): (dl )
1
2
3
4
5
6
sub foo {
  my ( $cgi, $template ) = @_;

  print $cgi->header,
    $template->output;
}


Das zweite Codebeispiel sagt mehr aus, was eigentlich getan wird als das erste.

Gruss,
Linuxer

View full thread uninitialized value