PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Gtk2/perl] bug in meiner bugbehebung



Chakotay
13-11-2006, 07:18
hab in meinem script das problem das ein array manchmal leer sein kann
und das mag das script irgendwie nicht so gerne
nun dachte ich das:


if (@BLACKLIST == m//)
{
my $list_item = Gtk2::ListItem->new ("keine Einträge vorhanden");
$list1->add($list_item);
$list_item->show;
}
ja das problem lösen sollte (ok danach ist der array gefüllt,aber der bug tritt weiter auf)

Use of uninitialized value in pattern match (m//) at /home/chakotay/.xchat2/Z-SCRIPT/Z-Blacklist.pl line 190.

wie kann ich der problem elegand aus dem weg räumen ?

Molaf
13-11-2006, 20:10
Das Problem ist wohl eher, wie Du das Array auf Einträge abfragst, nämlich indem Du mit einem leeren RE-Suchstring suchen willst.


if (@array)
{#array hat einträge
}

So ist das etwas eleganter.

(oder bei der Negation einfach unless statt if)

Chakotay
13-11-2006, 22:06
danke :-)
unless hats behoben

ich sags ja immer wieder (if's sind mir ein rätzel) auch wenn if diesmal falsch war^^

Molaf
14-11-2006, 03:44
Gegangen wäre aber auch:

if (not (@array))
{ #blah
}

Der Fehler lag aber an der Kombination RE und Array. nicht am if oder unless.

Chakotay
14-11-2006, 09:31
hmm
welches ist den das bessere ?
if (not (@array))
oder
unless (@array) :confused:

Molaf
14-11-2006, 15:23
Das ist wohl ganz nach Belieben. Ich hab zumindest noch nirgendwo gelesen, dass eine der beiden Umsetzungen (in den neuen Perl-Versionen) vom Laufzeitverhalten schneller wäre.

Ich nehme unless selber nur, wenn eine einzelne Sache zu entscheiden ist, in länge if-elsif-else-Alien mische ich kein unless rein, dann blicke ich selber nichtmehr durch.