my $FIFO=undef; mkfifo( $svitok_truby, 0700 ) || die 'Ошибка создания трубы '.$svitok_truby.' : '.$!; local $SIG{CHLD} = "IGNORE"; if( $nomer_vosproizvodyshchego_protsessu=fork ){ $|=1; open( $FIFO, '>', $svitok_truby ) || die 'Не открыть трубу '.$svitok_truby.' на запись : '.$!; print $FIFO 'pause'; }else{ exec '/usr/bin/mplayer -slave -input file='.$svitok_truby.' /tmp/1.flac'; } close( $FIFO ); unlink $svitok_truby; #### mkfifo( $svitok_truby, 0700 ) || die 'Ошибка создания трубы '.$svitok_truby.' : '.$!; # Управляющая часть ("родитель"). if( $nomer_vosproizvodyshchego_protsessu=fork ){ $|=1; use Term::ReadKey; ReadMode 'cbreak'; # Parent while( 1 ){ $knopka=&ReadKey( 0 ); if( $knopka eq '/' ){ system( '/bin/date' ); }elsif( $knopka eq $knopka_vyhodu ){ system( '/bin/echo quit >'.$svitok_truby ); last; } } }else{ ## Child for( $i=0; $i<=$#svitok_na_vosproizvedenie; $i++ ){ system( '/usr/bin/mplayer -slave -input file='.$svitok_truby.' '.$svitok_na_vosproizvedenie_kom[$i] ); } } ReadMode 'normal'; unlink $svitok_truby;