use warnings; use strict; use utf8::all; use POSIX qw( mkfifo ); mkfifo( $svitok_truby, 0700 ) || die 'Ошибка создания трубы '.$svitok_truby.' : '.$!; local $SIG{CHLD} = "IGNORE"; # Родитель. if( $nomer_vosproizvodyshchego_protsessu=fork ){ use IO::Handle; open( $FIFO, '>'.$svitok_truby ) || die 'Не открыть трубу '.$svitok_truby.' на запись : '.$!; # Same thing? -- I.e. not working? $|=1; $FIFO->autoflush( 1 ); use Term::ReadKey; ReadMode 'cbreak'; while( 1 ){ $knopka=&ReadKey( 0 ); if( $knopka eq ' ' ){ print $FIFO 'pause'; }elsif( $knopka eq '0' ){ print $FIFO 'quit'; last; } } # Ребёнок. }else{ for( $i=0; $i<=$#svitok_na_vosproizvedenie; $i++ ){ system( '/usr/bin/mplayer -slave -input file='.$svitok_truby.' '.$svitok_na_vosproizvedenie_kom[$i] ); } } ReadMode 'normal'; close( FIFO ); unlink $svitok_truby;