Since the accepted answer is using `perl`, you can just as well do the whole thing in `perl`, without other non-standard tools and non-standard shell features, and without loading unpredictably long chunks of data in the memory, or other such horrible misfeatures.

The `ytee` script from the end of this answer, when used in this manner:

 ytee command filter1 filter2 filter3 ...

will work just like

 command <(filter1) <(filter2) <(filter3) ...

with its standard input piped to `filter1`, `filter2`, `filter3`, ... in parallel, as if it were with

 tee >(filter1) >(filter2) >(filter3) ...

Example:

 echo 'Line 1
 Line B
 Line iii' | ytee 'paste' 'sed s/B/b/g | nl' 'sed s/iii/III/ | nl'
 1 Line 1 1 Line 1
 2 Line b 2 Line B
 3 Line iii 3 Line III

This is also an answer for the two very similar questions: [here](https://unix.stackexchange.com/questions/183356/split-an-input-for-different-command-and-combine-the-result) and [here](https://unix.stackexchange.com/questions/66853/tee-cat-use-an-output-several-times-and-then-concatenate-results).

**ytee**:

 #! /usr/bin/perl
 #	usage: ytee [-r irs] { command | - } [filter ..]
 use strict;
 if($ARGV[0] =~ /^-r(.+)?/){ shift; $/ = eval($1 // shift); die $@ if $@ }
 elsif(! -t STDIN){ $/ = \0x8000 }
 my $cmd = shift;
 my @cl;
 for(@ARGV){
 	use IPC::Open2;
 	my $pid = open2 my $from, my $to, $_;
 	push @cl, [$from, $to, $pid];
 }
 defined(my $pid = fork) or die "fork: $!";
 if($pid){
 	delete $$_[0] for @cl;
 	$SIG{PIPE} = 'IGNORE';
 	my ($s, $n);
 	while(<STDIN>){
 		for my $c (@cl){
 			next unless exists $$c[1];
 			syswrite($$c[1], $_) ? $n++ : delete $$c[1]
 		}
 		last unless $n;
 	}
 	delete $$_[1] for @cl;
 	while((my $p = wait) > 0){ $s += !!$? << ($p != $pid) }
 	exit $s;
 }
 delete $$_[1] for @cl;
 if($cmd eq '-'){
 	my $n; do {
 		$n = 0; for my $c (@cl){
 			next unless exists $$c[0];
 			if(my $d = readline $$c[0]){ print $d; $n++ }
 			else{ delete $$c[0] }
 		}
 	} while $n;
 }else{
 	exec join ' ', $cmd, map {
 		use Fcntl;
 		fcntl $$_[0], F_SETFD, fcntl($$_[0], F_GETFD, 0) & ~FD_CLOEXEC;
 		'/dev/fd/'.fileno $$_[0]
 	} @cl;
 die "exec $cmd: $!";
 }