sub lock { flock(MBOX,LOCK_EX); # and, in case someone appended # while we were waiting... seek(MBOX, 0, 2); } sub unlock { flock(MBOX,LOCK_UN); } open(MBOX, ">>/usr/spool/mail/$ENV{'USER'}") or die "Can't open mailbox: $!"; lock(); print MBOX $msg,"\n\n"; unlock(); #### sub fileopen { my($filename) = @_; local *MW; my($openokay) = open(MW,"+<$filename"); if (!$openokay) { return 0; } lock(*MW); seek(MW,0,0); return *MW; } sub lock { my($nick) = @_; flock({$nick},LOCK_EX); # and, in case someone appended # while we were waiting... seek({$nick}, 0, 2); } sub unlock { my($nick) = @_; flock({$nick},LOCK_UN); }