#!/usr/bin/perl -wT use strict; use CGI; use Fcntl qw/ :DEFAULT :flock /; use Data::Dumper; my $q = CGI->new; my $log_file = 'some_file.log'; my %params = map { $_, [ $q->param( $_ ) ] } $q->param; open LOG, ">>", $log_file or die "Can't open $log_file for appending: $!"; flock LOG, LOCK_EX or die "Can't get an exclusive lock on $log_file: $!"; print LOG Dumper( \%params ) or die "Can't print to $log_file: $!"; close LOG or die "Can't close $log_file: $!";