Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Can I run a piece of code like child process?

by Eradicatore (Monk)
on Jun 06, 2001 at 20:02 UTC ( [id://86283]=note: print w/replies, xml ) Need Help??


in reply to Can I run a piece of code like child process?

From what I've experienced and researched so far on win32 and NT is that its easiest maybe to use fork. From what I can tell, fork on win32 is like a hybrid between a true fork and a thread. It doesn't create a new seperate process as seen by the task manager, but it also does not have access to global variables in the parent like a thread should.

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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://86283]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (7)
As of 2024-03-28 12:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found