Schrift
[thread]7759[/thread]

Kann kein array sharen in threads



<< >> 4 Einträge, 1 Seite
Gast Gast
 2006-03-03 19:11
#63449 #63449
Hallo,

ich habe ein kleines Problem und es wäre super, wenn man mir helfen könnte:

Hier mein Code:
Code: (dl )
1
2
3
4
5
6
use threads;
use threads::shared;

my @array : shared;

push( @array, [("wert1", "wert2")]);

und ich bekomme bei push folgenden Fehler:
"Invalid value for shared scalar at ..."

Dass das kein Scalar ist, ist ja klar.
Laut perldoc.org kann man auch arrays sharen und mit dem "@" vor array mache ich das doch klar. Ich habe bisher nur Beispiele gefunden, bei denen ein Scalar geshart wird.
Aber wieso funktioniert das nicht ?

MfG, calavera
Froschpopo
 2006-03-03 21:10
#63450 #63450
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
versuch mal: share(@array);\n\n

<!--EDIT|Froschpopo|1141413166-->
FIFO
 2006-03-03 22:24
#63451 #63451
User since
2005-06-01
469 Artikel
BenutzerIn

user image
glaube nicht, dass dies das Problem ist:
Quote
A variable can also be marked as shared at compile time by using the "shared" attribute: "my $var : shared". (perldoc threads::shared)
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
Dubu
 2006-03-04 00:59
#63452 #63452
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Ich glaube eher, das Problem ist die anonyme Array-Referenz, die selber nicht ge"share"t ist und die du dem ge"share"ten Array hinzufügen möchtest. Aus der Manpage: "[...] This means that you must create nested shared data structures by first creating individual shared leaf notes, then adding them to a shared hash or array."
<< >> 4 Einträge, 1 Seite



View all threads created 2006-03-03 19:11.