Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8580[/thread]

Globale Variable fuer mehrere Prozesse



<< >> 2 Einträge, 1 Seite
styx-cc
 2006-12-13 22:43
#72535 #72535
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Hallo, ich hatte vorhin schon mal mein Problem versucht zu loesen, allerdings hatte das mit SIG{ALRM} doch nicht ganz so geklappt wie gehofft.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
use strict;
use warnings;

our $test_text = "Die ist ein Text";
my $chd = fork();

if ($chd == 0) {
print "$test_text\n";
} else {
$test_text = 'blablablubb';
wait();
}


Wie koennte ich jetzt erreichen, das ich die globale Variable $test_text in allen Prozessen veraendern kann?

Hintergrund ist, ich habe einen Clienten geschrieben, der das geschehen auf einem Chatserver mitloggt, allerdings verlangt der Chatserver alle 15 min eine Aktion, dies will ich mit einem 15 minuetigem Ping erreichen.

Das ist soweit auch alles kein Problem, allerdings wird die globale Socket-Variable neu erstellt, wenn die Verbindung mal getrennt wird, und dann hat der CHD-Process natuerlich noch ein altes Socket im speicher..

Hoffe das war verstaendlich und das mir jemand ein bisschen helfen kann =)

MfG
Pörl.
ptk
 2006-12-13 23:05
#72536 #72536
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
use forks::shared:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use forks;
use forks::shared;

my $variable : shared;
$variable = "init";

my $thread = threads->new
(sub {
while() {
sleep 1;
print STDERR "\r", $variable;
}
});

while() {
print STDERR " "x40, "Enter new value for \$variable: ";
chomp($variable = <STDIN>);
}

Ansonsten zu Fuß, indem man sich perldoc perlipc durchliest.
<< >> 2 Einträge, 1 Seite



View all threads created 2006-12-13 22:43.