Ok, now that I have perl/tk working with
fork I have another question about the forked child process. In the following code, the child happily waits for urls from the parent to go get them (I'm on win32 btw). But the quit button ends the parent but not the child for some reason. Also, I want the child to end if the user clusily kills the parent window from the "x" on the windows window. I read the signal info in the IPC area but didn't really understand it. Thanks for any help!
#!/usr/local/bin/perl -w
use POSIX;
use Tk;
use LWP::UserAgent;
use URI::URL;
pipe(FROM_P, TO_C) or die "pipe: $!";
select(((select(TO_C), $| = 1))[0]);
my $ua = LWP::UserAgent->new;
if (!($kid_pid = fork))
{
close(TO_C);
while($line = <FROM_P>) {
chomp($line);
my $url = $line;
my $file = 'yahoo.txt';
my $req = HTTP::Request->new(GET => $url);
$req->header('Accept' => 'text/html');
$ua->request($req, $file);
};
POSIX::exit(0);
}
my $mw = MainWindow->new();
$button = $mw->Button(-text => "hello", -activebackground => 'red',
-command => \&printit)->pack();
$button2 = $mw->Button(-text => "quit",
-command => \&myexit)->pack();
MainLoop;
sub printit {
print TO_C "http:\/\/www\.yahoo\.com\n";
}
sub myexit {
kill 9, $kid_pid;
exit;
}
Justin Eltoft
"If at all god's gaze upon us falls, its with a mischievous grin, look at him" -- Dave Matthews