#!/usr/bin/perl use warnings; use strict; my @commands = ( 'sleep 3 && find /usr/share/doc', 'sleep 4 && find /opt', 'sleep 5 && df' ); my @pids; for my $i (0 .. $#commands) { if (my $pid = fork) { push @pids, $pid; } elsif (defined $pid) { 0 == system "$commands[$i] > $i.o" or die "Can't run $commands[$i]"; exit } else { die "Can't fork"; } } for my $i (0 .. $#commands) { print "=== $commands[$i] ===\n"; waitpid $pids[$i], 0; open my $fh, '<', "$i.o" or die "$i.o: $!"; print while <$fh>; unlink "$i.o"; } #### #!/usr/bin/perl use warnings; use strict; my @commands = ( 'sleep 3 && find /usr/share/doc', 'sleep 4 && find /opt', 'sleep 5 && df' ); my @fhs; for my $i (0 .. $#commands) { open $fhs[$i], '-|', $commands[$i] or die "Can't run $commands[$i]"; } for my $i (0 .. $#commands) { print "=== $commands[$i] ===\n"; print while readline $fhs[$i]; } #### ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,