Tach(h),
hab n Problem, wenn ich im Main-Part ne Variable festleget mit strict vars:
#!/usr/bin/perl -w
use strict;
use Thread;
my $var = 10;
und mit detach() nen Thread starte, welcher diese Variable $var verändert, also:
my $t = new Thread \&mach_was;
$t->detach();
sub mach_was
{
foreach (1 .. 5){
$var--;
}
}
so wird die Variable $var einfach nicht verändert, sie entspricht also bei späterer Ausgabe mit z.B.:
sleep(10);
print "For now the var looks like: $var";
exit(0);
nicht dem erwartetem Ergebniss von 5 sondern es wird nach wie vor die Zahl 10 ausgegeben. Leserechte besitzt die sub 'mach_was' des Threads $t jedoch bezüglich von $var, doch scheinbar keine globalen Schreibrechte.
habs auch schon mit Package-Variablen versucht, also:
durch
ersetzt und die Variable $var jeweils mit $main::var verwendet, doch ohne Erfolg.
Jemand n Tipp?