[Perl] Perl con scripts

Gunnar Wolf gwolf@campus.iztacala.unam.mx
Wed, 6 Mar 2002 19:40:09 -0600 (CST)


Hola,

En este caso, creo que lo que m=E1s te conviene son los famosos 'here
documents'. Lo que har=EDas es:

-----------------------------
print <<'EOF';
<SCRIPT language=3D"javascript">
function linkFTecnica(nref){
    (...)
}';# fin de la funci=F3n JavaScript
</SCRIPT>
EOF
-----------------------------

Imprime todo lo que est=E1 entre tu print y el EOF. Claro, puedes usar
cualquier cosa en vez de EOF, pero EOF t=EDpicamente es una buena
convenci=F3n. Si lo vas a usar muchas veces, puedes ponerle p.ej.
EOF_linkFTecnica

Como tip: Si pones, como en mi ejemplo, <<'EOF', perl no realizar=E1
interpolaci=F3n de variables. Si usas <<"EOF", perl realizar=E1 interpolaci=
=F3n
tal cual si todo el contenido estuviera dentro de comillas dobles. De
hecho, puedes hacer tambi=E9n un <<`EOF`, ejecutando el contenido en el
shell... Aunque te sugiero mantenerte lejos de esta =FAltima :)

Los here documents puedes utilizarlos para cualquier cosa que admita un
valor. Por ejemplo, es v=E1lido decir:

-----------------------------
$var =3D <<'EOF';
Esto
entra a la
variable.
EOF
-----------------------------

O inclusive, puedes hacer comentarios de esta manera. Bueno, no
comentarios, sino que expresiones nulas, que s=ED ocupan tiempo de
evaluaci=F3n. No te sugiero, de nuevo, hacerlo... Aunque es legal.

-----------------------------
<<'EOF';
Todo este texto se ir=E1 al ca=F1o.
Derechito.
Bueno, no derechito... Pero...
=BFA qui=E9n le importa?
EOF
-----------------------------

Saludos,

> Hola amigos. Tengo un peque=F1o problemilla. Un programa que tengo es un
> CGI y desde este se recogen datos, se tratan, y se devuelve el
> resultado al usuario.
>
> Pero ahora viene lo que no s=E9 c=F3mo hacer. Quiero lanzar un evento de
> JavaSript desde un tag de HTML de respuesta del CGI, desde dentro del
> programa Perl. S=E9 que puede haber c=F3digo JavaScript embebido dentro d=
e
> c=F3digo Perl, pero =BFpueden haber eventos tambi=E9n? y =BFtodo el c=F3d=
igo
> JavaScript debe de ir detr=E1s de un 'print'?
>
> Por ejemplo:
> - El tag es:
> <a href=3D'" . $me . "?C=3DOFERTAS2&EMPRESA=3D".$empresa_param."&NREF=3D"=
=2E$nref." onMouseOver=3D\"linkFTecnica(nref2)\"'>";
>
> - El c=F3digo de JavaScript debe ser:
>
> print '<SCRIPT language=3D"javascript">';
> print 'function linkFTecnica(nref){';
> ...
> print '}';# fin de la funci=F3n JavaScript
> print '</SCRIPT>';
>
>
> Pero todo lo del medio, es decir, lo de dentro de la funci=F3n, =BFtambi=
=E9n
> debe de ir con print ' ..'?
>
> Lo he probado sin 'print' y no se ejecuta el c=F3digo JavaScript. =BFSe
> puede hacer esto? =BFC=F3mo?

--=20
Gunnar Wolf - gwolf@campus.iztacala.unam.mx - (+52-55)5623-1118
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973  F800 D80E F35A 8BB5 27AF