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")In reply to (tye)Re: Background processes in Win32
by tye
in thread Background processes in Win32
by c-era
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |