use warnings;
use strict;
####
chomp($pid = $$);
####
$LOCK_EXCLUSIVE = 2;
$UNLOCK = 8;
####
use Fcntl ':flock';
####
$fifo = "ENV{HOME}/a_file";
####
$fifo = "$ENV{HOME}/a_file";
####
close(FILE) || warn "update queue file exited $?\n";
####
close(LOCK) || warn "lock file exited $?\n";;
$str=`cat $fifo.lock`;
flock LOCK, $UNLOCK;
####
system("rm $fifo.lock");
####
#!/usr/local/bin/perl
use warnings;
use strict;
use Fcntl ':flock';
use Tie::File;
my $fifo = "$ENV{HOME}/a_file";
my $lock = "$fifo.lock";
tie( my @pid, 'Tie::File', $lock )->flock( LOCK_EX )
or die "Cannot open '$lock' $!";
@pid = $$;
tie( my @lines, 'Tie::File', $fifo )->flock( LOCK_EX )
or die "Cannot open '$fifo' $!";
( my $pop, @lines ) = sort @lines;
print "$hostname is poping $pop\n";
untie @lines;
print "PID lock file is going to be removed\n";
untie @pid;
unlink $lock or die "Cannot unlink '$lock' $!";
__END__