use POSIX qw(strftime); sub log_msg { open(my $fh, ">>", 'log_file.txt') or die "Err: $!"; printf $fh "[%s] %s\n", strftime("%Y-%m-%d %H:%M:%S", localtime), shift; close $fh; } ... log_msg("Log this message");