in reply to Background processes in Win32

for $file (@files){ $string = "open (A$file, \"perl part2.pl $file|\")"; eval $string; # Error checking omitted for simplicity }

No good read to use eval for that.

use Symbol qw( gensym ); for $file (@files){ open( my $fh= gensym(), "perl part2.pl $file |" ); # Error checking omitted for simplicity }

And since you don't seem to be doing anything with the pipe that you open, I'd suggest:

for $file (@files){ system( 1, "perl part2.pl $file" ); # Error checking omitted for simplicity }

But there are quite a few ways to start a process in the background under Win32. I'm not a big fan of Win32::Process which I think was poorly written, is usually overkill, and is very unportable to other operating systems. You can find many of them mentioned in the 3 or 4 other threads on this topic that have shown up in the last few weeks or even in Q&A. But I like the very portable (and probably still not officially documented) system(1,...).

        - tye (but my friends call me "Tye")

Replies are listed 'Best First'.
RE: (tye)Re: Background processes in Win32
by c-era (Curate) on Oct 23, 2000 at 19:07 UTC
    Thanks, the system(1,....) is great (I haven't seen it before). Now if I could just get fork to work ...