Estou assumindo que a razão pela qual você quer fazer isso é para que você não precise incluir "print scalar localtime" para cada declaração impressa. Se assim for, eu recomendaria fazer isso de maneira mais simples.
Em vez de usar print
em cada declaração de impressão, crie funções separadas para registrar mensagens de erro, mensagens informativas e saída de impressão. Assim:
sub logmsg {
print (scalar localtime() . " @_\n");
}
sub logerr {
print STDERR (scalar localtime() . "ERROR: @_\n");
}
sub debug {
if ($debug) {
print "DEBUG: @_\n";
}
}
Em seguida, no script, sempre usarei logmsg
ou logerr
, conforme apropriado. Isso facilita a mudança para onde as mensagens de log vão alterando essas poucas funções. No seu caso, você também pode alterar as funções de log para gravar diretamente no arquivo em vez de para STDOUT / STDERR. (No meu próprio caso, usarei frequentemente o syslog, então removerei o código do registro de data e hora e, em vez disso, utilizarei, por exemplo, Sys::Syslog
com o nível adequado de instalação e registro.)