I'll add that assigning a new IO::File to $handle before calling open probably doesn't do what you'd expect:
If FILEHANDLE is an undefined scalar variable (or array or hash element) the variable is assigned a reference to a new anonymous filehandle, otherwise if FILEHANDLE is an expression, its value is used as the name of the real filehandle wanted. (This is considered a symbolic reference, so "use strict ’refs’" should not be in effect.)
So a declared $handle is all you need. It can even be written as open my $handle, "$command |".
Combining with moritz's advice,
my @handles; foreach my $f ( 0 .. 9 ) { open $handles[$f], "$command |"; }
Of course, this is assuming that you actually want to read the standard output of $command. If all you want to do is fire and forget the process, there are lighter alternatives (system).
In reply to Re: Asynchronous processes and anonymous handles
by waba
in thread Asynchronous processes and anonymous handles
by yaralian
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |