Thread Problem Numerisch String Literal
(14 answers)
Opened by Oliver at 2013-01-07 23:11
Es ist nicht klar, was Du möchtest.
Mit "Chatdirector" kann ich nichts anfangen. Ich aktiviere den Glaskugelmodus: Code (perl): (dl
)
$c->addBarLayer($data2); Im ersten Codefragment erwartet als Argument "$data2" eine Array-Referenz. Deshalb funktioniert es, oder? Hinweis: Die eckigen Klammern machen aus der Liste eine anonyme Referenz auf ein Array. Aber im zweiten Codefragment ist "$data3" ein Skalar (also weder ein Array, noch eine Referenz) und enthält vermutlich den Wert "48, 94, 130, 6", welcher natürlich kein Integer ist (Integer enthalten keine ZEichen, wie " " oder ",". Vermutlich deshalb erscheint die Fehlermeldung. Die Ursache ist, dass Du in der for-Schleife einen Skalar zusammenbaust, statt eines Array. Elemente eines Arrays werden z.B. mit push(@arrayname,LISTE) am Ende hinzugefügt. Wird ein Array angesprochen, ist ein '@' davor zu schreiben. Wird nur ein Element eines Array benutzt, schreibe '$' vor dem Namen und [INDEX] danach (Beispiel: $array[0]. Gehe ich Recht in der Annahme, dass die ersten beiden Elemente von '$data3' entfernt werden sollen? Falls ja, ist dieser Code sicher hilfreich: ("myfunc" bitte durch "$c->addBarLayer" ersetzen) Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 use strict; my @data = ( 5, 9, 12, 172, 1, 33); # Numerische Werte benötigen kein "" my @data3; # Leeres Array push(@data3,@data); # Array-Elemente von '@data' an '@data3' anhaengen # Die ersten beiden Elemente aus '@data3' entfernen shift @data3; shift @data3; myfunc([@data3]); # anonyme Referenz an Funktion oder Methode übergeben sub myfunc { my $ref=shift; foreach my $entry ( @$ref) { print "ENTRY=$entry\n"; } } Ausgabe: |