log { my @args = @_; my $fmt = shift @args; open my $fh, ">>", "/var/log/error.log" or return; printf {$fh} $fmt, @args; close $fh; return; } #### { my $buffer = ""; sub _print { my @args = @_; $buffer .= sprintf shift @args, @args; return; } sub _flush { my $content = $buffer; $buffer = ""; local $| = 1; print $content; } } _print($cgi->header( -type => .... )); ...... _flus();