use POSIX qw( mkfifo ); my $svitok_truby; mkfifo( $svitok_truby, 0700 ) || die "Ошибка создания трубы $svitok_truby : $!"; my @args = ('/usr/bin/mplayer', '-slave', "-input file=$svitok_truby", '/tmp/1.flac'); local $SIG{CHLD} = "IGNORE"; my $pid = fork(); die "Fork failed\n" unless defined $pid; if ($pid == 0) { $| = 1; exec @args; } open (my $FIFO, '>', $svitok_truby) || die "can't open $svitok_truby: $!"; while(read STDIN, my($char), 1) { print $FIFO $char; } close($FIFO);