#!/usr/bin/perl -w use strict; use Fcntl ':flock'; sub add { open FH, ">>$file" or die "Cant open config file $!\n"; flock(FH,LOCK_EX); print FH "zone \"$formdata{domain}\" in \{\n\ttype slave\;\n\tfile\"$client\/db.$formdata{domain}\"\;\n\tallow-query \{ any\; \}\; \}\;\n\n"; close FH; } #### #!/usr/bin/perl -w use strict; use Fcntl ':flock'; sub add { open FH, ">>$file" or die "Cant open config file $!\n"; lock_file(*FH, LOCK_EX); print FH "zone \"$formdata{domain}\" in \{\n\ttype slave\;\n\tfile\"$client\/db.$formdata{domain}\"\;\n\tallow-query \{ any\; \}\; \}\;\n\n"; close FH; } sub lock_file { local *FH = shift; my $lock = shift; my $count = 0; my $timeout = 15; until (flock FH, $lock) { sleep 1; die "Can't get lock\n" if ++$count > $timeout; } }