#!/usr/bin/perl use strict; use warnings; use POSIX qw( mkfifo ); use IO::Handle; my $svitok_truby = 'tmp.pp'; mkfifo( $svitok_truby, 0700 ) || die "Pipe fail; $svitok_truby : $!"; local $SIG{CHLD} = "IGNORE"; my @args = ('/usr/bin/mplayer', '-slave', '-input', "file=$svitok_truby", '/tmp/1.flac'); my $pid = fork(); die "Fork failed\n" unless defined $pid; if ($pid == 0) { exec @args; } open (my $FIFO, '>', $svitok_truby) || die "can't open $svitok_truby: $!"; $FIFO->autoflush(1); for my $i (1 .. 10) { print $FIFO 'pause'; sleep 1; } print $FIFO 'quit'; close($FIFO); END { unlink $svitok_truby; }