Es ist nicht klar, was Du möchtest.
Mit "Chatdirector" kann ich nichts anfangen.
Ich aktiviere den Glaskugelmodus:
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)
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);
my @data3;
push(@data3,@data);
shift @data3;
shift @data3;
myfunc([@data3]);
sub myfunc
{
my $ref=shift;
foreach my $entry ( @$ref)
{
print "ENTRY=$entry\n";
}
}
Ausgabe:
ENTRY=12
ENTRY=172
ENTRY=1
ENTRY=33