[Cascavel-pm] Perl - Cases

Eden Cardim edencardim em gmail.com
Terça Abril 24 10:14:30 PDT 2007


On 4/24/07, Thomas Britis <thomas em tcnet.com.br> wrote:

> > <trecho de código de um .cgi do bugzilla>
> > use strict;
> >
> > use lib qw(.);
> >
> > require "globals.pl";
> > </trecho de código de um .cgi do bugzilla>
> >
> > Realmente tá feia a coisa... Desisti de ler o resto do código depois
> > de ler essas três linhas iniciais...
> >
> Eden,
>
>         Boa tarde.
>
>         Qual seria(m) o(s) problema(s) desse trecho de código?
>
>         Atenciosamente,

- falta um < use warnings > depois do < use strict > para evitar dores
de cabeça num projeto do tamanho do bugzilla
- < use lib qw(.) > ao meu ver, está sendo usado para adaptar a
estrutura mal-definida (segundo os meus critérios individuais) do
código, que mistura bibliotecas (.pl = perl library) com executáveis
(.cgi). Se não me falha a memória, ter o diretório atual no @INC dá
vazão a falhas de segurança, tanto é que Perl não coloca o '.' no @INC
se o taint mode estiver ligado.
- < require "globals.pl" > tem dois problemas. Primeiro, usar globais
é má prática vastamente conhecida. Nem abri o arquivo globals.pl, mas
se por acaso ele não contém nada global, o nome não suficientemente
descritivo, o que é ruim do mesmo jeito. Segundo, "globals.pl" está
escrito com aspas duplas, o que obriga o compilador a analisar
inutilmente a string em busca de candidatos a interpolação. Isso
prejudica bastante o desempenho de uma aplicação cgi, já que o
programa inteiro é recompilado cada vez que se faz uma requisição.

-- 
Eden Cardim
Instituto Baiano de Biotecnologia
Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas
Laboratório de Bioinformática


Mais detalhes sobre a lista de discussão Cascavel-pm