[Perl] Pregunta #3

Alejandro G. Bedoya nezumi@prodigy.net.mx
Fri, 15 Mar 2002 04:15:32 -0600


>Umm... =BFPor qu=E9 sigues teniendo el $Temporal{$Fi2}++;?

    Porque soy medio wey???


>El que te aparezcan warnings no s=F3lo hace que sea m=E1s lento, sin=
o que te
>indica d=F3nde est=E1s cag=E1ndola. El ver warnings en tu programa t=
e debe hacer
>corregirlo para evitarlos.

    Lo que pasa es que nunca uso warnings... adem=E1s, como se le hac=
e para
ver el warning en HTML?? Si corro uno de mis programas desde la conso=
la solo
se ejecuta cierta parte del mismo, tengo que ejecutarlo desde el brow=
ser...


>Si quieres contar cu=E1ntas ocurrencias de cada llave hay, te sugier=
o algo
>as=ED:

>foreach my $Fic1 (@IndiceFichero1, @IndiceFichero2) {
>    # =BFPara qu=E9 hacer dos ciclos si puedes hacer uno s=F3lo?
>    if defined $Temporal{$Fic} {
>        $Temporal{$Fic}++;
>    } else {
>        $Temporal{$Fic} =3D 1;
>    }
>}

    Pues si, ser=EDa con el defined, pero ya se me hace mucha jalada.=
.. El
defined no ocasiona de todas maneras pasos adicionales internos para =
ver si
esta definido o no???



>Varias maneras de evitar esto... La primera, muy simple, evitar ser
>llamado por GET si recibimos alg=FAn par=E1metro:
>die 'Me llamaron brinc=E1ndose las reglas!' if (param() && request_m=
ethod ne
>'POST');

    Si y s=F3lo si nunca usas GETs. En algunos casos si se tienen que=
 usar.
Por ejemplo, el usuario comun entra por sistema.pl  y el supervisor e=
ntra
por sistema.pl?super


>La segunda, m=E1s simple y recomendable a=FAn: Siempre verificar que=
 el
>usuario sea v=E1lido al iniciar la sesi=F3n. (c=F3digo feo ejemplo)

>verificaUsuario(param('user')) if param();
>(...)
>sub verificaUsuario {
>    my $usr=3Dshift;
>    return 0 if usuarioValido($usr);
>    print h3('Vete a la goma. No me caes bien.'), end_html;
>    exit 0;
>}

    Y como es eso de param??? Que tipo de sesi=F3n???


---
Sinceramente...
Alejandro G. Bedoya
InterAccion.COM          Ponemos su Internet en Acci=F3n