[SP-pm] Logar access.log do Squid no Mysql usando File::Tail

Luis Motta Campos luismottacampos at yahoo.co.uk
Wed Aug 20 23:29:25 PDT 2008


MrBiTS wrote:
> De prático ele faz só isso. O que ele faz a mais e que pode ser
> removido do código é a impressão dos erros do último eval,
> representada pelo trecho:
> 
> print $@; if ($@) { print $@; } else { }
> 
> Se você quiser, pode remover esse código.

Eu removeria esse código de qualquer forma. Ele não parece certo, faz 
uma coisa duvidosa e usa uma prática desencorajada. Vamos aos detalhes:

1. Ele não parece certo, faz uma coisa duvidosa

Mesmo sem saber do resto do seu programa, eu não acho que imprimir $@ 
sem tratamento e sem interpolação duas vezes seja certo. E este código 
faz isso, se $@ estiver definido (isto é, sempre que acontecer um erro 
de eval()).

2. Prática desencorajada

Mesmo sendo Perl válido, a gente recomenda que não se use blocos vazios 
para nada (a não ser que você seja o Damian Conway ou o Erudil). É má 
prática no sentido de que traz "sujeira" para o seu código, e é 
totalmente desnecessário - se você quer usar o bloco do if, não precisa 
escrever o bloco do else.

assim, o trecho acima deveria ter sido escrito como

print "Explicação do erro aqui: $@\n" if $@;

Leia a explicação completa sobre isso em "perldoc -f die" e "perldoc 
perlvar".

Espero que fique claro.
Putamplexos.
-- 
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.


More information about the SaoPaulo-pm mailing list