in reply to Threads
My example shows how to use fork together with Tk to get web pages but not interfere with the gui. The child just sits there waiting for urls to get. You will have to add proxy support if you're behind a firewall though.
Oh, also, you want to make sure you download the right version of perl that supports fork. You can get this from active state at here
#!/usr/local/bin/perl 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 (!($pid = fork)) { close(TO_C); while($line = <FROM_P>) { print "Child Pid $$ just read this: $line\n"; chomp($line); $url = $line; $file = 'yahoo.txt'; my $req = HTTP::Request->new(GET => $url); $req->header('Accept' => 'text/html'); $res = $ua->request($req, $file); }; } my $mw = MainWindow->new(); $button = $mw->Button(-text => "click here to download yahoo web page" +, -activebackground => 'red', -command => \&printit)->pack(); print "i'm the parent about to mainloop\n"; MainLoop; sub printit { print TO_C "http:\/\/www\.yahoo\.com\n"; }
Justin Eltoft
"If at all god's gaze upon us falls, its with a mischievous grin, look at him" -- Dave Matthews
|
|---|