{ ## Parent our ( %hash, @array, $scalar, $LOCK ); ## Global data my $lockfile = "./GobalLock"; open ( $LOCK, ">>", $lockfile ) or die "Can't open $lockfile; $!\n"; ... # code to fork and maintain number of children } #### { my $need; ... if ( flock( $LOCK, LOCK_SH ) ) ## Get a copy of Global data { $need = $hash{"stuff"}; flock( $LOCK, LOCK_UN ); } else { die "$!\n"; } ... if ( flock( $LOCK, LOCK_EX ) ) ## Update the Global data { $hash{"stuff"} = $need; flock( $LOCK, LOCK_UN ); } else { die "$!\n"; } ... }