#!/usr/bin/perl use warnings; use strict; my $log_file = createLog(time() . '.log'); $log_file->("$0 Initialized"); sub createLog { my $log_file = shift; open my $log_handle, ">$log_file" or die "Log file creation failed: [$!]\n"; select((select($log_handle), $| = 1)[0]); return sub { my $msg = shift; my $time = scalar(localtime()); $msg = "BGN[$time]\n$msg\nEND[$time]\n\n"; if (fileno $log_handle) { print $log_handle $msg; } else { warn "Log file closed: $msg"; } return; } }