hallo mike,
ich nehme an dass du die kind-prozesse abge-forkt hast, so in dieser art:
####
#!/usr/bin/perl use strict; use Data::Dumper; my %hs; my $ref = %hs; $ref->{"all"}="ueberall"; print "M1:$$ ".Data::Dumper->Dumpxs([$ref], ['ref'])."\n"; my $child = fork;
if ($child == 0) { #kind print "C1:$$ ".Data::Dumper->Dumpxs([$ref], ['ref'])."\n"; $ref->{"cld"}="child "; sleep 1; print "C2:$$ ".Data::Dumper->Dumpxs([$ref], ['ref'])."\n"; } else { #papa $ref->{"par"}="parent"; print "P1:$$ ".Data::Dumper->Dumpxs([$ref], ['ref'])."\n"; sleep 2; print "P2:$$ ".Data::Dumper->Dumpxs([$ref], ['ref'])."\n"; } ####
nun ist sicherlich zu erwaren das an P2 in dem hash 3 einträge stehen all, cld und par. leider werden beim fork _alle_ variablen dupliziert. eine mögliche lösung dafür ist den shared-memory zu nutzen. entweder direkt mit shmget,shmwrite ..usw, dies ist nicht sehr bequem.
die perl-objekt variante sollte mit IPC::Shareable gehen. ich habe mich in den letzten tagen damit schon rumgeschlagen, es geht aber irgendwie nicht. -> gleich noch eine unabhängige nachricht in die liste geschrieben.
gruss thomas