[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